我有以下表格:
id | user_id | post_title | is published
1 9332 some title 0
2 2133 some title 1
3 9332 some title 0
4 2133 some title 1
5 4555 some title 0
6 4555 some title 1
7 3221 some title 0
8 3221 some title 0
我的目标是:寻找所有具有相同用户标识的条目,其中没有一个条目的“is published”=1。
因此,我必须得到id为1、3、7和8=>的条目,这些条目是迄今为止没有任何发布文章的用户的条目。
查询是什么样的?
扩展:
在这里可以找到小提琴:
http://sqlfiddle.com/#!9/b58fb3/1/0型
此外,我还创建了表2。我的目标是只显示表1中那些在表2中没有链接条目的用户条目。所以我的目标是,在执行查询之后,只剩下id为1和3的表1条目(只有用户9332个条目)。
5条答案
按热度按时间h9a6wy2h1#
试试这个:
huus2vyu2#
你可以用
not exists
:例如,所有用户至少有两个条目。此查询将返回具有一个未发布条目的用户。目前尚不清楚这是否可取。否则,修改查询就相当简单了。
vyu0f0g13#
例如。:
注意:不要在表/列标识符中使用空格。我已相应地修改了列名。
2lpgd9684#
使用嵌套查询:
或使用联接:
输出
演示
http://sqlfiddle.com/#!2012年9月25日
j8ag8udp5#
简单的方法是使用
SUBQUERY
与GROUP BY
以及HAVING
条款。我们可以返回重复的行,但是没有is_published = 1
然后与外部查询连接,返回匹配id的记录输出: