0

我有 2 张桌子:

用户

  • id_user
  • 姓名

用户图片

  • id_picture
  • id_user
  • 文件名

这将返回所有行:

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

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

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、安德烈斯,14岁
  • 2、张柏芝、7
  • 3、约翰,29 岁
4

2 回答 2

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;
于 2013-08-14T20:17:10.903 回答
0

你需要分组

     GROUP BY u.id_user
于 2013-08-14T20:10:50.157 回答