lib/primitive.js
function join (table, args, type) {
    this.typecheck && t.typecheck('join', [table, args, type]);
    if ('string'===typeof args) args = [args];
    var result = ['join',table,'on',args.join(' and ')];
    if (type) result.splice(0,0,type);
    return result.join(' ');
}
function join (table, args, type) {
    this.typecheck && t.typecheck('join', [table, args, type]);
    if ('string'===typeof args) args = [args];
    var result = ['join',table,'on',args.join(' and ')];
    if (type) result.splice(0,0,type);
    return result.join(' ');
}
function join ( table , args , type ) { this . typecheck && t . typecheck ( 'join' , [ table , args , type ] ) ; if ( 'string' === typeof args ) args = [ args ] ; var result = [ 'join' , table , 'on' , args . join ( ' and ' ) ] ; if ( type ) result . splice ( 0 , 0 , type ) ; return result . join ( ' ' ) ; }
left join table on pk1=fk1 and pk2=fk2 ...
left join table on pk1 = fk1 and pk2 = fk2 ...