我可以使用MySQL执行此操作还是需要涉及PHP?

时间:2010-08-02 07:41:39

标签: php mysql

我有两个具有类似结构的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和Table_B.Col2 ='A'中)和Table_A.col5 = 2

4, 4, 'Pink', 'Cat', 2
5, 2, 'Purple', 'Dog', 2

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

SELECT A.* FROM table_A AS A
LEFT JOIN Table_B AS B ON A.Col1 = B.Col3
WHERE B.Col3 IS NULL AND B.Col2 = 'A' AND ...