簡體   English   中英

子查詢同一張表:Sequelize

[英]Subquery the same table : Sequelize

我有一種情況,我希望使用sequelize執行以下查詢。

選擇*從catg_level = 1的主機中選擇*和obj_id(從catg_level = 2的主機中選擇obj_id)按位置排序;

我下面的代碼是用續寫的。

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

{
    where: {
        catg_level: '1',
        obj_id:{
            in:[sequelize.literal('(select obj_id from master where catg_level = 2)')]
        }
    },
    order: 'position ASC',
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM