我有两个表:
表 A :
+--+----+ |id|name| +--+----+ |0 |foo | |1 |bar | |2 |baz | +-------+
表 B :
+--+----+ |A |cond| +--+----+ |0 |X | |1 |Y | +-------+
其中BA列是A.id值。
当B.cond =’X’时,我想从 A 中选择 B 表中没有匹配项的所有行。
因此,结果应为:
如何使用join(或类似的性能方法)编写此SQL请求?
SELECT A.* FROM A LEFT JOIN B ON A.id = B.A AND B.cond = ‘X’ WHERE B.A IS NULL
该查询根据您指定的条件联接表,然后仅选择table中不匹配的行B。
B