我有2個表,用戶和文件。
用戶擁有(id,name),
文件有(id,user_id,路徑)。
我需要爲用戶顯示錶格和每個用戶上傳文件的數量。SQL查詢從2個表中獲取數據
2
A
回答
6
使用LEFT JOIN
,GROUP BY
和COUNT
如下:
SELECT Users.name, COUNT(Files.id) AS files_count
FROM Users
LEFT JOIN Files
ON Users.id = Files.user_id
GROUP BY Users.name
1
select
u.id,u.name,count(f.id) as counting
from
users as u inner join files as f on u.id=f.user_id
group by
u.id,u.name
+2
這個答案和我的區別在於,這個不會包含沒有文件的用戶,因爲你使用INNER JOIN而不是LEFT JOIN。 – 2012-07-19 11:27:54
相關問題
- 1. SQL從2個表中獲取數據
- 2. SQL查詢來獲取總的數據diffrence 2個表
- 3. SQL查詢加入2個表和獲取必需數據
- 4. SQL查詢從兩個表中獲取數據單列
- 5. oracle 11g sql查詢從兩個表中獲取數據
- 6. 從多個表中獲取數據的SQL Server查詢
- 7. SQL Server 2008查詢從兩個表中獲取混合數據
- 8. SQL組查詢從兩個表中獲取數據
- 9. SQL - 根據查詢結果從一個表中獲取計數
- 10. 用於從多個表中獲取數據的SQL查詢
- 11. SQL查詢從一個表中獲取數據,並從另一個表
- 12. SQL查詢,從多個表中獲取數據和查詢結果
- 13. MySQL從SQL查詢獲取數據(phpmyAdmin)
- 14. 從sql查詢獲取特定數據
- 15. SQL查詢獲取數據
- 16. 從2個mySQL表中獲取數據
- 17. 從2個表中獲取數據(MySQL)
- 18. 一個查詢從mysql中的2個表中獲取數據(使用php)
- 19. 從查詢數據的表名中獲取表名的SQL查詢
- 20. 用sql查詢獲取多個數據
- 21. SQL查詢從表中獲取記錄
- 22. SQL從多個表中獲取數據
- 23. SQL從多個表中獲取數據
- 24. 根據表1中的信息查詢從表2中獲取數據
- 25. 從一個查詢中的三個表中獲取數據
- 26. 如何從1個sql查詢中的4個表中獲取數據?
- 27. SQL查詢:有條件地從多個列中獲取數據
- 28. SQL查詢從所有數據庫中獲取數據
- 29. SQL查詢中獲取數據
- 30. 創建一個從多個表中獲取數據的查詢
謝謝。 「SELECT Users.name,(SELECT count(Files.id)FROM Files WHERE Files.user_id = Users.id)作爲Total Uploads FROM Users」看起來像它也可以工作,第二個問題將LEFT JOIN更好地使用? – 2012-07-19 11:54:55
大概差別不大。如果您希望在將來添加更多列(例如,文件總大小等),則可能會有所幫助 - 那麼LEFT JOIN會更方便。 – 2012-07-19 12:15:43