var Target = require('./target'); var Expr = require('./expr'); var SqlObject = require('./object'); var Type = require('./join').Type; var TypeSql = [ 'INNER', 'LEFT', 'RIGHT' ]; /** * The equivalent of a SQL join. */ module.exports = new Class({ Extends: SqlObject ,Tag: 'sql-join-table' ,Properties: { /** * The join type. */ type: { enumType: Type ,value: 0 }, /** * The right target. */ target: { type: Target ,value: null }, /** * The join on condition. */ condition: { type: Expr ,value: null } } ,render(params) { return TypeSql[this.type] +' JOIN ' + this.target.render(params) + this.renderIfSet(this.condition, 'ON', params); } });