【问题标题】:SQL join to multiple lines in tableSQL连接到表中的多行
【发布时间】:2021-02-24 11:38:56
【问题描述】:

我正在尝试找到在这种情况下使用的正确连接。表 A 包含一系列唯一(即无重复)ID。表 B 包含每个 ID 的多个测量值,包括表 A 中不存在的 ID。我需要一个组合表,其中包含表 B 中的所有数据,用于表 A 中的 ID 与不匹配的数据。

例如:

A               B                                 JOINED:
ID              ID  | count | date                ID  | count | date
-               --  | ----- | ----                --  | ----- | ----
001             001 | 512   | 01-Aug-2016         001 | 512   | 01-Aug-2016
002             001 | 123   | 08-Aug-2016         001 | 123   | 08-Aug-2016
003             003 | 2325  | 01-Aug-2016         002 |       | 
004             003 | 423   | 08-Aug-2016         003 | 2325  | 01-Aug-2016 
005             004 | 2     | 01-Aug-2016         003 | 423   | 08-Aug-2016
                004 | 76    | 08-Aug-2016         004 | 2     | 01-Aug-2016
                                                  004 | 76    | 08-Aug-2016
                                                  005 |       |
                   

【问题讨论】:

  • salesforce.stackexchange.com,特别是marketing-cloudquery 标签,您将获得更多关注您的SFMC 问题。
  • 您写了“包括表 A 中不存在的 ID”,但您的示例和 Gordon 在下面的回答表明相反(即所有 ID 都在表 A 中,其中一部分在表 B 中) .你能澄清一下吗?

标签: sql salesforce-marketing-cloud


【解决方案1】:

你已经准确描述了left join

select a.id, b.count, b.date
from a left join
     b
     on a.id = b.id;

【讨论】:

  • 而且这个描述比你可以通过“SQL JOIN TYPES”搜索请求在互联网上找到的带有圆圈的图片更正确。
  • 我尝试使用“左连接”,但它只能显示 1 行的计数和日期。
  • 当我使用 id 作为唯一键时,我终于找到了问题所在。非常感谢。
猜你喜欢
  • 2018-01-21
  • 2013-11-04
  • 2012-03-26
  • 2014-11-10
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多