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(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(tableLeft)+"."+this.quoteIdentifier(attrLeft)+" = "+this.quoteIdentifier(tableJunction)+"."+this.quoteIdentifier(identLeft)
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(tableRight)+"."+this.quoteIdentifier(attrRight)+" = "+this.quoteIdentifier(tableJunction)+"."+this.quoteIdentifier(identRight)
joinQuery+=" LEFT OUTER JOIN "+this.quoteIdentifier(table)+" AS "+this.quoteIdentifier(as)+" ON "+this.quoteIdentifier(tableTarget)+"."+this.quoteIdentifier(attrTarget)+" = "+this.quoteIdentifier(tableJunction)+"."+this.quoteIdentifier(identTarget)