2012-03-20 10 views
0

ジョインを介して4つのテーブルからデータを選択するクエリがあります。一致する外部キーを含む5番目のテーブルの数値の行もカウントします。結合後のテーブルからの行の計算

これは私の現在のクエリがどのように見える見え、それは私が一致する外部キーを含む第五の表の数の行をカウントするにはどうすればよい

"SELECT 
        ph.pheed_id,ph.user_id,ph.datetime,ph.repheeds, 
        ph.pheed,fav.id,fav.P_id,fav.datetime as stamp, 
        u.username,ava.avatar_small 
        COUNT(pheed_comments.comment_id) as comments 
        FROM favourite_pheeds fav 
        INNER JOIN pheeds ph ON ph.pheed_id=fav.P_id 
        INNER JOIN users u ON u.id=ph.user_id 
        INNER JOIN profiles pr ON pr.user_id=ph.user_id 
        LEFT JOIN user_avatars ava ON ava.avatar_id=pr.avatar 
        ORDER BY stamp DESC 
        LIMIT $offset,$limit"; 

仕事doesntのものです。

+0

5番目のテーブルの一致数を検索する場合は、INNER JOINを使用します。 – Teja

+0

どういう意味では機能しませんか?構文エラーが出ますか?またはあなたの結果は空ですか? – rekire

+0

@rekireええ、構文エラーが発生しました – MrFoh

答えて

1
select ph.pheed_id, 
    ph.user_id, 
    ph.datetime, 
    ph.repheeds, 
    ph.pheed, 
    fav.id, 
    fav.P_id, 
    fav.datetime as stamp, 
    u.username, 
    ava.avatar_small, 
    coalesce(pcc.Count, 0) as comments_count 
from favourite_pheeds fav 
inner join pheeds ph on ph.pheed_id = fav.P_id 
inner join users u on u.id = ph.user_id 
inner join profiles pr on pr.user_id = ph.user_id 
left join user_avatars ava on ava.avatar_id = pr.avatar 
left outer join (
    select pheed_id, count(*) as Count 
    from pheed_comments 
    group by pheed_id --took a guess at the column name here 
) pcc on ph.pheed_id = pcc.pheed_id 
order by stamp desc 
LIMIT $offset, $limit 
関連する問題