SQL返回用户列表,其中包含来自另一个表的图片计数

时间:2013-08-14 20:08:40

标签: mysql sql

我有两张桌子:

用户

  • id_user
  • 名称

user_picture

  • id_picture
  • id_user
  • 文件名

返回所有行:

SELECT u.id_user AS id, u.name FROM user AS u

这应该返回所有用户的图片数量,但它只返回用户表的一行:

SELECT u.id_user AS id, u.name, COUNT(p.id_user_picture) AS pics FROM user AS u LEFT JOIN user_picture AS p ON p.id_user = u.id_user

我需要它返回这样的东西:

  • id_user 名称图片
  • 1,Andres,14
  • 2,Cecilia,7
  • 3,John,29

2 个答案:

答案 0 :(得分:3)

您必须对该字段进行分组,然后COUNT函数将计算每个分组字段的每个值。

试试这个:

SELECT u.id_user AS id, u.name, COUNT(p.id_user_picture) AS pics 
    FROM user AS u 
    LEFT JOIN user_picture AS p ON p.id_user = u.id_user
    GROUP BY u.id_user, u.name;

答案 1 :(得分:0)

你需要分组

     GROUP BY u.id_user