[英]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.