我确信答案已经出现在某处,但我很难说清楚我需要什么,所以我认为最好举个例子。以这两个表格为例:
PLAN TABLE OTHER TABLE ASSOCIATED TO PLAN
___________________ ____________________________
| PK | planID | | PK | planID | flag |
------------------- ----------------------------
| 1 | 51 | | 1 | 51 | 0 |
| 2 | 62 | | 2 | 51 | 1 |
| 3 | 73 | | 3 | 51 | 1 |
------------------- | 4 | 62 | 0 |
| 5 | 62 | 0 |
| 6 | 62 | 1 |
| 7 | 73 | 0 |
| 8 | 73 | 0 |
| 9 | 73 | 0 |
----------------------------
我正在努力解决的问题是编写一个查询,它会从计划表中返回所有planID,这些planID在关联表中没有带有flag = 1的条目。所以在这种情况下查询的结果会是:
____________
| planID |
------------
| 73 |
============
答案 0 :(得分:1)
我认为你需要类似的东西(未经测试):
select planId
from plan
where not exist (
select 1
from other_table
where plan.planId = other_table.planId
and flag = 1
)