0

私は2つのテーブルを持っています:

ユーザー

  • id_user
  • 名前

ユーザー画像

  • id_picture
  • id_user
  • ファイル名

これはすべての行を返します。

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

これは、すべてのユーザーとその写真の数を返すことになっていますが、 users テーブルの 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_usernamepics
  • 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 に答える