如何在多个表上运行连接查询?

时间:2013-12-05 06:34:07

标签: mysql sql sql-server

这是我的表结构 我有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查询吗?

2 个答案:

答案 0 :(得分:0)

这将给你最新的20条评论:

SELECT ac.comment_text FROM album_comments ac
ORDER BY ac.post_date DESC LIMIT 20

你需要解释数据在你的comment_likes表格中插入的方式.. plz让我知道,你还需要在代码中做一些条件编码来匹配特定用户喜欢..

答案 1 :(得分:0)

Declare @currently_logged_userid int = 0;

select top 20 ac.comment_text, isnull(cl.like_bit,0)
from album_comments ac
   left join comment_likes cl on ac.id = cl.comment_id
where ac.comment_userid = @currently_logged_userid       
order by ac.post_date desc