我的会员有一张声誉点表。
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_id
或comment_id
,但是当我列出这些记录时,如果记录 有{{1}我需要从article_id
表中获取article_title
。与blog_articles
相同,如果它存在,我需要从comment_id
表中获取comment
。如果缺少blog_comments
或article_id
,只需按原样打印原始记录。
如果有人能告诉我哪个联接用于此查询,我真的很感激。我认为,通过查看文档,它是我需要的LEFT JOIN,它打印左边的所有记录,即使右边没有匹配 - 但实际上不确定。
我不是在寻找任何代码,只是告诉我建议使用哪种连接,然后我会对其进行编码。
答案 0 :(得分:3)
左连接确实是你需要的。如果记录没有article_id
,article_title
的值将为NULL
。这同样适用于comment_id
/ comment
。
答案 1 :(得分:3)
您需要一个OUTER加入。外连接有LEFT,RIGHT和FULL两种类型。您可以使用LEFT或RIGHT外部联接来编写查询,但可能是LEFT OUTER JOIN(通常缩写为LEFT JOIN)。