2016-11-22 21 views
0

ユーザー、投稿、コメントの3つのテーブルがあります。 Usersテーブルのフィールドがmysql - ユーザー、投稿、コメントテーブルからコメント数とユーザーの投稿をすべて取得する

ID、氏名、性別、電話

投稿テーブルのフィールドが

post_idの、user_idは、投稿されている、時間

コメントテーブルのフィールドは、

ID、USER_IDですコメント、投稿ID、時刻

私はこれらのフィールドの値を取得したいと考えています

名前、性別、ポスト、時間、回数(コメント)このよう

+0

まだ試しましたか? –

+1

テーブルの中で 'JOIN'する必要があります。それはそれです... – Rahul

+0

私は参加しましたが、投稿に対するコメントがない場合はnullを示します。私はカウントが必要 –

答えて

0
SELECT x.*, CONCAT(u.FirstName, ' ', u.LastName) as name, u.Gender as gender 
FROM (
    SELECT 
    a.id , a.post, a.date_time, a.user_id as uid, 
    COUNT(c.post_id) AS 'count' 
FROM 
    posts a 
LEFT JOIN 
    comments c ON a.id = c.post_id 
GROUP BY 
    a.id 
) x 
LEFT JOIN users u ON u.id=uid 
+0

ありがとう。できます。 –

+0

ようこそ@IliasAhmed –

0

試してください:あなたがしたい場合はcomments.idが

SELECT User.name, User.gender, posts.posts, count(distinct ifnull(comments.id, 0)) as commentcount 
FROM User 
JOIN posts on user.id = posts.user_id 
JOIN comments on user.id =comments.user_id 
GROUP User.name, posts.posts 

nullの場合

ここで0

が置き換えられます性別を持つグループは、グループ化するUser.genderを追加します。

+0

グループ内のすべての非集約を常に追加します。 –

+0

あなたの答えをありがとう。 –

関連する問題