2012-08-12 58 views
3

我有我的會員的聲譽積分表。我的查詢需要哪種連接類型

rep_id | mem_id | activity  | points | article_id | comment_id 
---------|------------|-------------------|------------|----------------|----------------- 
1  | 99  | Posted Comment | 5  | 10343  | 239403 
2  | 99  | Introduction | 50  |    | 
3  | 99  | Liked Comment | 5  | 748   | 9302 

正如你所看到的,並不是所有的聲譽分,有article_idcomment_id,但是當我列出這些記錄,如果記錄確實article_id,我需要從blog_articles表搶article_title 。與comment_id相同,如果它存在,我需要從blog_comments表中獲取comment。如果article_idcomment_id丟失,只需按原樣打印原始記錄。

我真的很感激,如果有人可以告訴我哪個連接用於此查詢。我想,通過查看文檔,這是一個我需要的左連接,它打印左側的所有記錄,即使右邊沒有匹配 - 但確實不確定。

我不是在尋找任何代碼,只是告訴我哪個連接是推薦的,我會編碼它。

回答

3

左連接是你需要的,確實如此。如果記錄沒有article_id,則article_title的值將是NULL。這同樣適用於comment_id/comment

3

您需要一個OUTER連接。外連接進來左,右,和全品種。您可以使用可以工作的LEFT或RIGHT外部聯接編寫查詢,但可能是LEFT OUTER JOIN(通常簡寫爲「LEFT JOIN」)就是您想要的。