lib/compiler.js
function _join() {
    var sql = '',
        i = -1,
        joins = this.grouped.join;
    if (!joins) {
      return '';
    }
    while (++i < joins.length) {
      var join = joins[i];
      if (i > 0) {
        sql += ' ';
      }
      if (join.joinType === 'raw') {
        sql += this.formatter.unwrapRaw(join.table);
      } else {
        sql += join.joinType + ' join ' + this.formatter.wrap(join.table);
        var ii = -1;
        while (++ii < join.clauses.length) {
          var clause = join.clauses[ii];
          sql += ' ' + (ii > 0 ? clause[0] : clause[1]) + ' ';
          sql += this.formatter.wrap(clause[2]);
          if (clause[3]) {
            sql += ' ' + this.formatter.operator(clause[3]);
          }
          if (clause[4]) {
            sql += ' ' + this.formatter.wrap(clause[4]);
          }
        }
      }
    }
    return sql;
  }
function _join() {
    var sql = '',
        i = -1,
        joins = this.grouped.join;
    if (!joins) {
      return '';
    }
    while (++i < joins.length) {
      var join = joins[i];
      if (i > 0) {
        sql += ' ';
      }
      if (join.joinType === 'raw') {
        sql += this.formatter.unwrapRaw(join.table);
      } else {
        sql += join.joinType + ' join ' + this.formatter.wrap(join.table);
        var ii = -1;
        while (++ii < join.clauses.length) {
          var clause = join.clauses[ii];
          sql += ' ' + (ii > 0 ? clause[0] : clause[1]) + ' ';
          sql += this.formatter.wrap(clause[2]);
          if (clause[3]) {
            sql += ' ' + this.formatter.operator(clause[3]);
          }
          if (clause[4]) {
            sql += ' ' + this.formatter.wrap(clause[4]);
          }
        }
      }
    }
    return sql;
  }
function _join ( ) { var sql = '' , i = - 1 , joins = this . grouped . join ; if ( ! joins ) { return '' ; } while ( ++ i < joins . length ) { var join = joins [ i ] ; if ( i > 0 ) { sql += ' ' ; } if ( join . joinType === 'raw' ) { sql += this . formatter . unwrapRaw ( join . table ) ; } else { sql += join . joinType + ' join ' + this . formatter . wrap ( join . table ) ; var ii = - 1 ; while ( ++ ii < join . clauses . length ) { var clause = join . clauses [ ii ] ; sql += ' ' + ( ii > 0 ? clause [ 0 ] : clause [ 1 ] ) + ' ' ; sql += this . formatter . wrap ( clause [ 2 ] ) ; if ( clause [ 3 ] ) { sql += ' ' + this . formatter . operator ( clause [ 3 ] ) ; } if ( clause [ 4 ] ) { sql += ' ' + this . formatter . wrap ( clause [ 4 ] ) ; } } } } return sql ; }
Compiles all each of the `join` clauses on the query, including any nested join queries.
Compiles all each of the join clauses on the query including any nested join queries .