LEFT JOINを使用して別のテーブルからのカウント(*)を導出することができます方法:私はテーブル定義以下のように持っているmysqlの
- 場所
(ID、名前) - レビュー
(ID、ユーザーID、placeid) - お気に入り
(ID、ユーザーID、placeid) - 写真
placeid
がPlace
テーブルのIDへの外部キーである(ID、URL、placeid)
。そのテーブルの上に
、私はこの種の情報を導出したい:
- placeid, place name, totalReview, totalFavorite, totalPhoto.
私はstuckedです。私の進捗状況は現在、このmysqlステートメントを使用して、totalReviewを知ることができるように、1つのテーブルから情報を得ることができます。 SELECT p.*, count(r.id) as totalReview from Place p left join Review r on p.id = r.placeid group by p.id
。 しかし、私はtotalFavoriteとtotalPhotoをどのように引き出すことができるのか分かりません。
あなたのソリューション(LEFT JOIN)とEhsanソリューションのパフォーマンス(下段)(http://stackoverflow.com/a/10458566/476917)はどのようになっていますか?私はこの解決策がLEFT JOINなしで解決できることを知らない。 –
+1私の答えが間違っていたことを指摘してくれてありがとう。外側のselectで 'totalFavorite'と' totalPhoto'を忘れないでください。 –
ご報告いただきありがとうございます。私は2つの変数を追加するコードを編集しました。 –