【发布时间】:2021-09-02 21:47:18
【问题描述】:
我正在尝试进行如下连接:
给定表 1:
+-----------+------+-------+
| date | name | count |
+-----------+------+-------+
| 1.1.2020. | A | 5 |
+-----------+------+-------+
| 1.1.2020. | B | 2 |
+-----------+------+-------+
| 1.1.2020. | C | 3 |
+-----------+------+-------+
和表 2:
+-----------+------+-------+
| date | name | count |
+-----------+------+-------+
| 1.1.2020. | B | 1 |
+-----------+------+-------+
| 1.1.2020. | C | 4 |
+-----------+------+-------+
| 1.1.2020. | D | 6 |
+-----------+------+-------+
我想按日期和姓名加入他们,但如果姓名不在其中一张表中,最终表应该仍然有它,计数为 0。
结果表将是
+-----------+------+---------+---------+
| date | name | count_1 | count_2 |
+-----------+------+---------+---------+
| 1.1.2020. | A | 5 | 0 |
+-----------+------+---------+---------+
| 1.1.2020. | B | 2 | 1 |
+-----------+------+---------+---------+
| 1.1.2020. | C | 3 | 4 |
+-----------+------+---------+---------+
| 1.1.2020. | D | 0 | 6 |
+-----------+------+---------+---------+
无论我尝试哪种连接类型,它只匹配名称在两个表中的那些行,所以我只会在此处获取这两行
+-----------+------+---------+---------+
| date | name | count_1 | count_2 |
+-----------+------+---------+---------+
| 1.1.2020. | B | 2 | 1 |
+-----------+------+---------+---------+
| 1.1.2020. | C | 3 | 4 |
+-----------+------+---------+---------+
这是我尝试过的查询之一,还有左连接、右连接等。
select * from
table_1 full outer join table_2 using(date, name)
谢谢!
【问题讨论】:
-
您是否过度简化了示例?您是否使用不同的数据对此进行测试?你有 WHERE 子句吗?您是否测试过这个 EXACT 示例(完全相同的数据,完全相同的查询)?
标签: sql google-bigquery