我有一个表,其中包含具有不同增量的ID作为单独的行。所以一个id可以有一个0 delta或delta 1或两个增量0和1.我试图找到那些有delta 0而不是delta 1的id。
这些ID必须位于从另一个查询返回的id列表中。我可以单独检索这两个集合,但是如何在同一个查询中进行交叉引用呢?
示例:
dataset
id|delta
1 | 0
1 | 1
2 | 0
3 | 0
4 | 1
5 | 1
预期结果:
ids 4,5
查询
select m.id from table m where m.delta=0 and m.id in (LIST OF IDS FROM ANOTHER QUERY)
和
select n.id from table n where n.delta=1 and n.id in (LIST OF IDS FROM ANOTHER QUERY)
答案 0 :(得分:0)
在自己加入表格时,使用Return row only if value doesn't exist中的LEFT JOIN / WHERE NULL
模式。
SELECT m.id
FROM yourTable AS m
LEFT JOIN yourTable AS n ON m.id = n.id AND n.delta = 1
JOIN (another query) AS o ON m.id = o.id
WHERE m.delta = 0 AND n.id IS NULL