从表中获取数据,如果condition为true,则所有相关行都会隐藏

时间:2016-08-13 11:51:47

标签: mysql

我有一张表格如下:

--------------------------------------
   id    |   product_id   |   value
--------------------------------------
   1     |       1        |     1
   2     |       1        |     2       
   3     |       1        |     3
   4     |       2        |     1
   5     |       2        |     2

现在我希望我选择数据,如果在哪里条件,值!= 3那么结果不应该有产品ID为1的行,因为它包含值= 3

希望你明白。

1 个答案:

答案 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的行。