2012-08-12 57 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”)就是您想要的。