【发布时间】:2018-06-11 17:54:02
【问题描述】:
我有 3 个表格(这些是主要字段):
-
朋友(存储用户的朋友)
- id_user
- id_str (推特唯一 ID)
-
用户(存储用户)
- id_user
- id_str (推特唯一 ID)
- 姓名
-
wc_forecast (存储用户的足球预测)
- id_forecast
- id_user
我需要从 user ID 3 中选择所有朋友的列表,以及他们的预测计数。这是我当前的查询:
SELECT
COUNT(wc_forecast.id_forecast) AS q,
user.name AS name, user.screen_name AS screen_name
FROM user
JOIN friend ON friend.id_str = user.id_str
LEFT JOIN wc_forecast ON wc_forecast.id_user = user.id_user
WHERE
friend.id_user = 3
GROUP BY wc_forecast.id_user
ORDER BY q DESC
问题在于并非所有用户都被显示。特别是那些没有做出任何预测的人不在该列表中。奇怪的是只有一个。
这是一个SQL Fiddle,其中包含一些示例记录。
问题是,如何显示所有用户的好友列表,包括所有在 wc_forecast 中没有记录的好友?
【问题讨论】: