我可以将下面的查询转换成续集吗? 我设置了一个简单的例子来说明这个想法,它基本上是将同一个表与多个表进行比较。 这个 TableC.field_4 = tableB.field_4 AND TableC.field_1 = tableA.field_1 和此 的 ( tableA.field_8 = 1 或者TableC.field_4不是NULL )
var TableA = sequelize.define('TableA',
field_1 : {
type : Sequelize.BIGINT,
primaryKey : true,
autoIncrement : true
},
field_2 : {
type : Sequelize.BIGINT,
},
field_3 : {
type : Sequelize.BIGINT(4),
references : {
model : 'TableD',
key : 'field_3'
}
},
field_8 : {
type : Sequelize.BOOLEAN,
allowNull : false,
defaultValue : true
},
{
tableName : 'tableA'
}
);
var TableB = sequelize.define('TableB', {
field_4 : {
type : Sequelize.BIGINT(4),
primaryKey : true,
autoIncrement : true
},
field_3 : {
type : Sequelize.BIGINT(4),
references : {
model : 'TableD',
key : 'field_3'
},
allowNull : false
},
field_5 : {
type : Sequelize.STRING(255),
unique : true,
allowNull : false
},
field_6 : {
type : Sequelize.STRING
},
field_7 : {
type : Sequelize.BIGINT,
allowNull : false
},
{
tableName : 'tableB'
}
);
var TableC = sequelize.define('TableC', {
field_4: {
type: Sequelize.BIGINT(4),
primaryKey: true
references: {
model: 'TableB',
key: 'field_4'
}
},
field_1: {
type: Sequelize.BIGINT,
primaryKey: true
references: {
model: 'TableA',
key: 'field_1'
}
},
{
tableName: 'tableC'
}
);
SELECT
*
FROM
tableA
JOIN tableB ON
tableB.field_3 = tableA.field_3
LEFT JOIN TableC ON
TableC.field_4 = tableB.field_4
AND TableC.field_1 = tableA.field_1
WHERE
(
tableA.field_8 = 1
OR TableC.field_4 IS NOT NULL
)
and tableB.field_7 = 10
and tableA.field_2 = 1036