我的查询需要哪种连接类型

时间:2012-08-12 02:07:05

标签: mysql sql database join

我的会员有一张声誉点表。

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,但是当我列出这些记录时,如果记录 有{{1}我需要从article_id表中获取article_title。与blog_articles相同,如果它存在,我需要从comment_id表中获取comment。如果缺少blog_commentsarticle_id,只需按原样打印原始记录。

如果有人能告诉我哪个联接用于此查询,我真的很感激。我认为,通过查看文档,它是我需要的LEFT JOIN,它打印左边的所有记录,即使右边没有匹配 - 但实际上不确定。

我不是在寻找任何代码,只是告诉我建议使用哪种连接,然后我会对其进行编码。

2 个答案:

答案 0 :(得分:3)

左连接确实是你需要的。如果记录没有article_idarticle_title的值将为NULL。这同样适用于comment_id / comment

答案 1 :(得分:3)

您需要一个OUTER加入。外连接有LEFT,RIGHT和FULL两种类型。您可以使用LEFT或RIGHT外部联接来编写查询,但可能是LEFT OUTER JOIN(通常缩写为LEFT JOIN)。