我有2個表:用戶和圖片。圖片表具有用戶的鍵。所以基本上每個用戶可以有多個圖片,每張圖片屬於一個用戶。 現在,我試圖做出以下查詢:我想選擇所有的用戶信息加上他擁有的圖片總數(即使它是0)。我怎樣才能做到這一點?可能它聽起來很簡單,但我試圖嘗試,似乎無法找到正確的查詢。我唯一可以選擇的就是這個信息,但只適用於至少有1張圖片的用戶,這意味着Pictures表格至少有一個記錄用於該關鍵字......但我也想考慮沒有任何用戶的用戶。任何想法? 謝謝!MySQL查詢:一個表的所有記錄加上另一個表的計數
3
A
回答
7
你可能想嘗試以下操作:
SELECT u.name,
IFNULL(sub_p.total, 0) num
FROM users u
LEFT JOIN (SELECT COUNT(*) total, user_id
FROM pictures
GROUP BY user_id
) sub_p ON (sub_p.user_id = u.user_id);
測試用例:
CREATE TABLE users (user_id int, name varchar(10));
CREATE TABLE pictures (user_id int);
INSERT INTO users VALUES (1, 'Joe');
INSERT INTO users VALUES (2, 'Peter');
INSERT INTO users VALUES (3, 'Bill');
INSERT INTO pictures VALUES (1);
INSERT INTO pictures VALUES (1);
INSERT INTO pictures VALUES (2);
INSERT INTO pictures VALUES (2);
INSERT INTO pictures VALUES (2);
結果:
+-------+-----+
| name | num |
+-------+-----+
| Joe | 2 |
| Peter | 3 |
| Bill | 0 |
+-------+-----+
3 rows in set (0.00 sec)
2
SELECT u.name, COUNT(p.picture) AS number
FROM User u
LEFT JOIN Picture p
ON u.id = p.userid
GROUP BY p.userid
相關問題
- 1. 如何加入具有所有計數的另一個表的計數查詢?
- 2. 快速查詢選擇不在MySQL的另一個表中的所有記錄
- 3. mysql從一個查詢中的兩個表中統計記錄?
- 4. MySQL根據記錄總數或另一個表中沒有記錄查詢一個表
- 5. 的MySQL從一個表計數,加入到另一個表
- 6. 另一個表添加到MySQL查詢
- 7. SQL查詢找到一個記錄在另一個表中有所有匹配的記錄
- 8. MySQL的高效的所有記錄從一個表到另一個
- 9. SQL查詢從一個表中獲取所有記錄,除了特定記錄,按日期,從另一個表
- 10. MySQL - 在一個表中計數記錄並在另一個表中計數記錄
- 11. 的MySQL與另一個表的計數查詢選擇
- 12. 對另一個表中的所有ID運行MySql查詢
- 13. 如何從一個查詢中的另一個表中檢索一個表中的記錄和相關記錄?
- 14. MySQL:使用另一個表中的計算更新所有記錄
- 15. 選擇所有記錄從一個表,具體的記錄從另一個
- 16. MySQL查詢計算唯一ID,計數記錄數和組數(3個表)
- 17. MYSQL - 查找一個表中的記錄不存在,在另一
- 18. SQL查詢來插入另一個表的所有ID相同的記錄在一個新的表
- 19. 從一個表插入所有記錄到另一個現有表的sql查詢
- 20. MYSQL PHP在兩個表中有一個查詢的計數行
- 21. SQL查詢來傳輸所有記錄在另一列在同一個表
- 22. 顯示所有記錄,如果他們有一個記錄在另一個表
- 23. 將表格的所有記錄插入另一個表格
- 24. 加入計數從一個表從另一個選擇 - mysql的
- 25. SQL Server查詢加入一個表,另一個查詢的
- 26. MySQL查詢同一表中的記錄
- 27. 使用左連接從另一個mysql表中計數記錄
- 28. 如何顯示誰有一個記錄時誰加入另一個表有記錄的表格記錄
- 29. MySQL:使用另一個表中的值計算表中的記錄數
- 30. 讓現有查詢另一個表值的計數的Rails
請後,你有這麼遠的查詢。 – 2010-05-15 10:29:33