[英]SQL join multiple tables with same column names into a new table?
我有 12 个表,我需要将 5 个列组合成一个新表。
每个表都是不同的月份,但它们都有相同的列名。
我相信我需要使用 11 个连接,但是当我使用左连接时,我只从第一个表(jan)返回数据。 当我使用完全外连接时,我返回的行充满了 Null,但看起来像合并表。 我正在使用 BigQuery。
SELECT
jan.ride_id,
jan.member_casual,
jan.ride_length,
jan.day_of_week,
jan.rideable_type
FROM
`jan_22` as jan
left join `feb_22` as feb
on jan.ride_id= feb.ride_id
我正在寻找的结果是 5 列,其中包含来自所有 12 个表的数据合并。 只是在添加其他之前尝试正确合并前 2 个。
我还应该使用 select into 还是 insert into 来创建一个包含 5 列的新表?
谢谢你的帮助。
正如Mikhail Berlyant在评论中所建议的,您应该使用union
,因为join
和union
之间的区别在于join
水平连接表,而union
垂直连接。 由于您需要 5 列,您应该使用union
将它们连接起来,如下所示:
insert dataset.new_table(<the columns(6)>)
SELECT
'Jan' as Month_Name,
jan.ride_id,
jan.member_casual,
jan.ride_length,
jan.day_of_week,
jan.rideable_type
FROM
`jan_22` as jan
UNION ALL
SELECT
'Feb',
feb.ride_id,
feb.member_casual,
feb.ride_length,
feb.day_of_week,
feb.rideable_type
FROM `feb_22` as feb
...
并且由于您可能有返回重复值的行,它将被union
但不会被union all
忽略,因此您应该使用union all
。
请参阅文档中的此处如何使用select
语句insert
表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.