アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
度々申し訳ないのですが、質問させてください。

現在mysqlに格納したデータの一覧を表示するページを作っているのですが、表示結果が思うようにいかず困っています。

環境:Mysql 5.1.22-rc,PHP  5.2.5
データベース:test01

main
--------------------------------------------------------
id name kana
1 太郎 たろう
2 次郎 じろう
3 花子 はなこ
--------------------------------------------------------

sub2
--------------------------------------------------------
id a_sakuhin   title
1 data_1   青空  
1 data_2   夕日
1 data_3   流星  
3 data_1   町並み
3 data_2   列車  
--------------------------------------------------------

というテーブルがあります。

それを一覧表示で

・太郎 (3)
・次郎 (0)
・花子 (2)

という具合にしたいのですが、どうしても()の中が全件合わせた結果になり

・太郎 (50)
・次郎 (50)
・花子 (50)

という様になってしまうのです。
どういったsql文を書けばよいのかアドバイスを頂けると嬉しいです。

よろしくお願いいたします。

A 回答 (1件)

こんな感じですね



SELECT main.id,name,kana,coalesce(sub2.count,0) as count
FROM main
LEFT JOIN (SELECT id,count(*) as count FROM sub2
GROUP BY id) sub2 ON sub2.id=main.id
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!