从另一个表中检索数据信息Left Join SQL

时间:2018-02-16 12:56:40

标签: sql subquery left-join

用户A喜欢用户C帖

用户

id_user name
 1      A
 2      B
 3      C

帖子

 id_post    post            user_post
   15       hi                  2
   19       how are you         3
   23       hello               2

喜欢

   id_like  id_liker liked_post_id  liked_user_id
   45           1           19          3

table likes我显示结果

用户1喜欢属于用户3的帖子19

SELECT liked_user_id,_liker,liked_post_id 
FROM likes
WHERE liked_user_id = 3

如何显示下一个

用户A喜欢用户C帖子“你好吗”

我试过,但收到错误:

 SELECT name
 FROM users as u
 LEFT JOIN 
     (SELECT id_post, post, user_post
      FROM posts as p
      LEFT JOIN 
          (SELECT liked_user_id, id_liker, liked_post_id 
           FROM likes 
           WHERE liked_user_id = 3
          ) AS b ON u.id_post = b.liked_post_id
     ) AS c ON u.id_user = c.user_post

2 个答案:

答案 0 :(得分:0)

SELECT liker.name AS liker_name
    ,liked.name AS liked_name
    ,p.post
FROM likes AS l
LEFT JOIN Users AS liker ON liker.id_user = l.id_liker
LEFT JOIN Users AS liked ON liked.id_user = l.liked_user_id
LEFT JOIN Posts AS p ON p.id_post = l.liked_post_id
    AND l.liked_user_id = p.user_post 
 WHERE l.liked_user_id = 3

答案 1 :(得分:0)

SELECT u.`name`, v.`name`, p.post  
FROM likes 
LEFT JOIN Users as u on likes.id_liker=u.id_user
LEFT JOIN Users as v on likes.liked_user_id=v.id_user
LEFT JOIN Posts as p on likes.liked_post_id=p.id_post
WHERE likes.liked_user_id=3
相关问题