Mysql 子查询同一个表:Sequelize

Mysql 子查询同一个表:Sequelize,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我有一个场景,我希望下面的查询使用sequelize执行 Master.all({ where: {catg_level: '1'}, order: 'position ASC', include: [{ model: Master, as: 'sub-menu', where: {catg_level: '2'} }] }) .then(function(a){ try { console.log(JSON.stringify(a))

我有一个场景,我希望下面的查询使用sequelize执行

Master.all({
  where: {catg_level: '1'}, 
  order: 'position ASC', 
  include: [{
    model: Master, 
    as: 'sub-menu', 
    where: {catg_level: '2'}
  }]
})
.then(function(a){
  try {
    console.log(JSON.stringify(a));
  } catch (e) {
    console.log(e);
  }
});
从catg_级别为1的主机中选择*并在“按位置顺序从catg_级别为2的主机中选择obj_id”中选择obj_id

我已经用sequelize编写了以下代码

Master.all({
  where: {catg_level: '1'}, 
  order: 'position ASC', 
  include: [{
    model: Master, 
    as: 'sub-menu', 
    where: {catg_level: '2'}
  }]
})
.then(function(a){
  try {
    console.log(JSON.stringify(a));
  } catch (e) {
    console.log(e);
  }
});
SQL生成了这个

条件catg_level=2被添加到主查询中,而不是作为子查询添加。我知道这是实际的功能。但是有没有解决办法来完成这项工作呢?请告知

提前感谢。

您可以使用sequelize.literal:


出于性能原因,我最好不要使用直接查询。有什么解决办法吗?