【发布时间】:2010-08-02 07:41:38
【问题描述】:
我有两个结构相似的 MySQL 表。即
Table_A - Col1, Col2, Col3, Col4, Col5
Table_B - Col1, Col2, Col3
我需要运行如下查询:
SELECT * FROM Table_A WHERE (Table_A.Col1 DOES NOT EXISTS in Table_B.Col3 AND Table_B.Col2 = 'A') AND Table_A.Col5 = 2 etc...
所以基本上我需要从 A 中选择不在 B 中但 B 有额外条件的所有内容。
希望以下示例对您有所帮助:
Table_A 示例行
1, 5, 'Orange', 'Elephant', 1
2, 3, 'Red', 'Horse', 2
3, 4, 'Blue', 'Rhino', 2
4, 4, 'Pink', 'Cat', 2
5, 2, 'Purple', 'Dog', 2
Table_B 示例行
1, 'A', 3
2, 'A', 2
3, 'B', 2
4, 'C', 3
我需要的返回数据是 - 我正在查询 Table_A 中的所有行(不在 Table_B AND Table_B.Col2 = 'A' 中)AND Table_A.col5 = 2
4, 4, 'Pink', 'Cat', 2
5, 2, 'Purple', 'Dog', 2
有什么想法吗? 谢谢!
【问题讨论】:
-
left join应该可以完成这项工作。