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

如您所见,并非所有声望点都有 aarticle_id或 a comment_id,但是当我列出这些记录时,如果记录确实有 a article_id,我需要article_titleblog_articles表中获取 。与 相同comment_id,如果它存在,我需要从桌子上comment抓取blog_comments。如果article_idcomment_id丢失,只需按原样打印原始记录。

如果有人能告诉我该查询使用哪个连接,我将不胜感激。我认为,通过查看文档,这是我需要的 LEFT JOIN,它从左侧打印所有记录,即使右侧没有匹配项 - 但真的不确定。

我不是在寻找任何代码,只是告诉我推荐使用哪个连接,我将对其进行编码。

4

2 回答 2

3

确实,左连接是您所需要的。如果记录没有article_id值,article_title则为NULL。这同样适用于comment_id/ comment

于 2012-08-12T02:11:40.653 回答
3

您需要一个 OUTER 连接。外连接有 LEFT、RIGHT 和 FULL 种类。您可以使用可以工作的 LEFT 或 RIGHT 外连接来编写查询,但您想要的可能是 LEFT OUTER JOIN(通常缩写为 LEFT JOIN)。

于 2012-08-12T02:27:20.400 回答