Ekspres uygulamasında Sequelize kullanıyorum. WHERE
maddesinde bir alt sorguya sahip bir sorgu oluşturmanız gerekir. Sequelize - yan tümcesinde
SELECT *
FROM MyTable
WHERE id NOT IN (
SELECT fkey
FROM MyOtherTable
WHERE field1 = 1
AND field2 = 2
AND field3 = 3
)
Önce benim modeller üzerinden ilişkiler/dernek çalıştım ama işe alamadı. Bir şey gibi:
MyTable.find({
where: {
id: {
$notIn: // <= what goes here? Can I somehow reference my include model?
}
},
include: [ {
model: MyOtherTable,
where: {
field1: 1,
field2: 2,
field3: 3
} ]
});
Sonra
Sequelize.where()
, orada hiç şans kullanarak çalıştı.
Sonra
Sequelize.literal()
ve bu eserler denedik ama Sequelize içinde fıkra ben buna yeniyim olarak nerede bir alt sorgu yapmanın
"doğru" yolu olmadığından emin değil.
MyTable.find({
where: {
id: {
$notIn: sequelize.literal(
'(SELECT fkey ' +
'FROM MyOtherTable ' +
'WHERE field1 = ' + field1 +
' AND field2 = ' + field2 +
' AND field3 = ' + field3 +
')'
}
}
});
Ben de Sequelize.query()
kullanabilirsiniz ama bunun için ulaşmalıdır yoksa gibi hissediyorum olarak literal()
hakkı uzakta olup olmadığını bakan ediyorum şey varsa gerçekten bilmiyorum biliyorum.
"düzgün" yolunu kullanarak biryan tümcesinde alt sorgunun nasıl gerçekleştirileceğini gerçekten bilmek isterim.
Geri bildiriminiz için teşekkürler!
Bu soruya http://stackoverflow.com/questions/38882185/sequelize-statementwhere-in-statementwhere üzerinden bu github sorununu https://github.com/sequelize/sequelize/issues/3961 adresinden ulaştım./39040218 # 39040218 ve görünüşte sequelize.literal kullanarak şu an için tek yoldur. – galileopy
'sequelize.literal (...)' kullanarak gibi görünüyor hala gitmek için yoldur –
Ben size yardımcı olabilir bu src buldum (UNTESTED). Bu http://srlm.io/2015/02/04/sequelize-subqueries/ –