我有一张表格如下:
--------------------------------------
id | product_id | value
--------------------------------------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
5 | 2 | 2
现在我希望我选择数据,如果在哪里条件,值!= 3那么结果不应该有产品ID为1的行,因为它包含值= 3
希望你明白。答案 0 :(得分:1)
SELECT * FROM mytable WHERE
product_id NOT IN
(SELECT product_id FROM mytable WHERE
value=3)
这里有一个嵌套查询。在嵌套查询中,您会找到值为3的所有product_id,然后返回1.然后在第一个查询中,您会在返回的查询中找到 NOT 的产品。所以product_id不是1。
此查询返回id为4和5的行。