2010-09-30 98 views
1

,因爲我使用的軌道,我變得生疏的SQL,因爲我很少在軌使用。 我有兩個相關的表格: 評論1:m comment_viewsSQL左加入其中軌道

我想查找其中comment_views.viewed爲false的所有評論。問題是,對於一些評論,comment_views中沒有相關記錄。

到目前爲止,我有

select comments.id 
    from comments 
     left join comment_views 
      on comments.id = comment_views.comment_id 
    where comment_views.viewed != "t" 
    group by type_id, object_id 
    order by comments.created_at desc 

但作爲規定,當存在comment_views沒有記錄不返回意見。

回答

2

您可以檢查null如果沒有記錄......

where comment_views.viewed != "t" or comments_views.viewed is null 
0

一對夫婦的意見:

  1. 只要您從您的左連接表引用列(在where子句中,你迫使連接充當內部連接。將這些條件放在連接上。

  2. 不知道爲什麼你正在做的組。我不認爲這是必要的。

所以,代碼應該是:

select comments.id 
    from comments 
     left join comment_views 
      on comments.id = comment_views.comment_id 
       and comment_views.viewed != "t" 
    order by comments.created_at desc 
+0

的是,其原因確實是不相關的組...我想我應該有剛離開它關閉這個例子 – tybro0103 2010-10-01 16:05:08