【发布时间】:2014-12-20 10:46:01
【问题描述】:
PEOPLE PEOPLE_FAVS
id user_id fav_id
------ ------- ----------
1 1 1
2 1 2
3 1 5
4 2 1
5 2 2
6
我有两张表 PEOPLE 和 PEOPLE_FAVS,我正在尝试获取所有没有收藏数字“5”的人,所以它应该返回
PEOPLE
id
------
2
3
4
5
6
我正在尝试这个查询:
SELECT `people`.`id`
FROM `people`
LEFT OUTER JOIN `people_favs` ON (`people_favs`.`user_id` = `people`.`id`)
WHERE (`people_favs`.`fav_id` != 5)
GROUP BY `people`.`id`
这是一个 SQL Fiddle:http://sqlfiddle.com/#!2/4102b8/3
【问题讨论】:
-
GROUP BY 有什么用?
-
把它分组,不要让2的重复
-
但是除了用户 1 之外没有人喜欢数字 5 !?!? - 并且 GROUP BY 旨在为聚合函数提供聚合。
-
那你有什么建议?
-
我完全正确。 你完全正确;-)
标签: mysql join conditional-statements