对于此方案,多个表在SQL中连接

时间:2013-12-05 05:42:21

标签: mysql sql

这是我的表结构 我有3张桌子:

  1. 会员表
  2. 评论表
  3. 评论如表
  4. 表结构可在以下图像中找到:

    表:成员

    --------------------------------------------------------------------
    user_id |full_name |email   | password  | image     |join_date     |
            |          |        |           |           |            |
    ---------------------------------------------------------------------
    

    表:album_comments

    --------------------------------------------------------------------
    id |album_id |comment_text | comment_userid | post_date |active_bit |
       |         |             |                |           |     |
    ---------------------------------------------------------------------
    

    表:comment_likes

    --------------------------------------------------------------------
    id |user_id  |comment_id   | post_date      |           | like_bit  |
       |         |             |                |           |     |
    ---------------------------------------------------------------------
    

    我想加入三个表并检索结果。这就是我需要的:

    我想返回最新的20条评论,并检查当前登录的成员是否喜欢这20条评论中的任何评论。如果是,则将状态位返回1作为那些注释,如果不是则返回状态位0.

    任何人都可以告诉你这是什么SQL查询吗?

1 个答案:

答案 0 :(得分:0)

以下查询应该适合您。从album_comments中选择所需的列,并根据comment_id将其与comment_likes连接,并检查comment_likes user_id是否等于您从UI发送的user_id。 ORDER BY DESC将返回LIMIT为20的最新评论。

Select |ac.Column1, ac.Column2...ac.Column-n|, cl.like_bit
FROM album_comments ac INNER JOIN comment_likes cl
ON ac.id = cl.comment_id AND cl.user_id = |screen user_id|
ORDER BY ac.id DESC LIMIT 20;
相关问题