我有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查询
- 3. MySQL从SQL查询获取数据(phpmyAdmin)
- 4. 从2个mySQL表中获取数据
- 5. 一个查询从mysql中的2个表中获取数据(使用php)
- 6. SQL查询从表中获取记录
- 7. 从一个查询中的三个表中获取数据
- 8. 根据表1中的信息查询从表2中获取数据
- 9. SQL从多个表中获取数据
- 10. 如何从1个sql查询中的4个表中获取数据?
- 11. SQL查询从所有数据库中获取数据
- 12. 使用一个MySQL查询从两个表中获取数据?
- 13. 学说 - 从一个查询的两个表中获取数据
- 14. 创建一个从多个表中获取数据的查询
- 15. SQL查询中获取数据
- 16. Sequelizejs从1个查询中获取2个mysql表的结果
- 17. Java -SQL查询从两个表中提取数据?
- 18. SQL查询从另一个表中提取数据IF NULL
- 19. SQL查询:乘法从2个表
- 20. MySQL查询从5个表中获取数据?
- 21. 查询MySQL数据库从另一个表中获取值
- 22. 使用动态查询从3个表中获取数据
- 23. LINQ查询从多个表中获取数据
- 24. 从两个表中获取数据(查询)
- 25. 如何编写SQL查询以从多个表中获取数据?
- 26. oracle sql查询从两个相似类型的表中获取数据
- 27. 从表中获取查询
- 28. 在单个查询中获取两个SQL表中的列数?
- 29. Linq查询从ASP.NET MVC中获取数据库结果2
- 30. LINQ:查询从2个表中获取信息
谢谢。 “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