如何在一个查询中从user,post,comments表中获取结果

时间:2019-04-03 19:24:32

标签: mysql sql join

标题可能不完全适合该问题!请原谅我

目标

我想了解完成了name的{​​{1}}的{​​{1}},该帖子(user)的postdescription上有,还有提供评论的人的名字(p_description

我该如何实现?

我有三个表:

post

comment_description

user

用户表类似于:

post comments等...

发布表,这里是:

u_id u_id name

p_id作为p_description表中的外键,

u_id表是:

user Comments u_id

请注意,表注释中的 u_id p_id 都是表p_id和{{1}中的外键}。

我正在为上述目标编写以下查询:

comment_description

它给了我userpostSELECT p_description,f_name,comment_description as COMMENT FROM user JOIN post ON user.u_id = post.u_id JOIN comments ON user.u_id = comments.u_id ,我还想给那些做过的人的名字对该帖子发表评论

如果不能很好地解释问题。

简而言之,我想查询关于这三个表的上述 GOAL

1 个答案:

答案 0 :(得分:0)

user中的用户ID上再次加入comments

SELECT u1.name,
       p1.p_description,
       u2.name,
       c1.comment_description
       FROM user u1
            INNER JOIN post p1
                       ON u1.u_id = p1.u_id
            INNER JOIN comments c1
                       ON c1.p_id = p1.p_id
            INNER JOIN user u2
                       ON u2.p_id = c1.p_id;