簡體   English   中英

左外部聯接,帶選擇,其中右表中的值不返回左中的所有行

[英]Left outer join with select where value in right table does not return all rows from left

我有一個多友關系表“喜歡”,其中存儲了表“列表”,“文章”,“評論”的喜歡。

該表的結構如下:

  • ID
  • 的content_id
  • 內容類型

我正在嘗試選擇所有具有喜歡計數的列表:

SELECT lists.*, COUNT(DISTINCT likes.id) AS likes FROM lists
                                      LEFT OUTER JOIN likes ON (lists.id = likes.content_id)
                                      WHERE likes.content_type = 'list'
                                      GROUP BY lists.id

但是,它僅從“喜歡”表中有喜歡的列表表中返回結果。

謝謝您的幫助!

如果需要左連接,則必須包含on子句中的where條件,否則我將用作內部連接

SELECT lists.*, COUNT(DISTINCT likes.id) AS likes 
FROM lists
LEFT OUTER JOINlikes ON 
    (lists.id = likes.content_id 
          AND likes.content_type = 'list')  
GROUP BY lists.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM