SQL查询获取除了来自另一个表的数组中的id之外的所有内容

时间:2016-03-23 09:01:27

标签: mysql sql

我可以使用一些SQL的帮助。我需要做的一个网站的一部分是你可以添加/删除用户的商店的地方。现在,获取已经分配给某个用户的商店的查询很简单,但我似乎无法弄清楚如何做相反的事情。意味着将所有尚未添加到用户的内容。

所以这里有一个表格的模板。

    user_id  store_id
    1        11 
    1        12
    1        14
    2        15
    4        16

如果我运行它(1将是php变量):SELECT store_id FROM store_user WHERE user_id= 1; 我得到了这样的结果:

store_id
11
12
14

剩下的就像:SELECT * FROM store except where id = 11,12,14

如果有人能帮助我完成最后一部分并且最好将其全部放入1个查询中,我将不胜感激。

编辑:对于那些在类似问题上遇到困难的人来说,这最终是有效的:

SELECT * FROM store where id NOT IN (select store_id from store_user where user_id = 1)

感谢大家的帮助!

2 个答案:

答案 0 :(得分:0)

使用NOT IN

SELECT * FROM store where 
id NOT IN (select store_id from store_user where user_id = 1)

答案 1 :(得分:0)

您可以使用 IN NOT IN

/profile/my-uploads