joinQuery+=" LEFT OUTER JOIN "+this.quoteIdentifier(table)+" AS "+this.quoteIdentifier(as)+" ON "+this.quoteIdentifier(tableLeft)+"."+this.quoteIdentifier(attrLeft)+" = "+this.quoteIdentifier(tableRight)+"."+this.quoteIdentifier(attrRight)
joinQuery+=" LEFT OUTER JOIN "+this.quoteIdentifier(tableJunction)+" ON "+this.quoteIdentifier(tableSource)+"."+this.quoteIdentifier(attrSource)+" = "+this.quoteIdentifier(tableJunction)+"."+this.quoteIdentifier(identSource)
joinQuery+=" LEFT OUTER JOIN "+this.quoteIdentifier(table)+" AS "+this.quoteIdentifier(as)+" ON "+this.quoteIdentifier(tableTarget)+"."+this.quoteIdentifier(attrTarget)+" = "+this.quoteIdentifier(tableJunction)+"."+this.quoteIdentifier(identTarget)
joinQueryItem+=" LEFT OUTER JOIN "+self.quoteIdentifier(tableJunction)+" ON "
joinQueryItem+=" LEFT OUTER JOIN "+self.quoteIdentifier(table)+" AS "+self.quoteIdentifier(as)+" ON "+self.quoteIdentifier(tableLeft)+"."+self.quoteIdentifier(attrLeft)+" = "+self.quoteIdentifier(tableRight)+"."+self.quoteIdentifier(attrRight)