我有三张桌子。
第一个表包含我的原始数据,另外两个是“卫星”表。他们三个都有相同的密钥acc_num。
原始数据表列:
卫星 1 列:
Satellite2 列:
我想创建一个基于 acc_num 的 SQL,它为我提供了存在于 Satellite1 和 Satellite2 中的所有 acc_num。如果其中一个卫星表中没有数据,那么我应该为空。
例如:
在原始表中,我将有:acc_num = 1,acc_num = 2,acc_num = 3,acc_num = 4
在卫星 1 中,我将获得以下数据:acc_num = 1 和 acc_num = 2
在 Satellite2 中,我将获得以下数据:acc_num = 3 和 acc_num = 4
所以输出将是:
Acc_num | Satellite1.Sat_date | Satellite2.Tracking 日期 |
---|---|---|
1 | 4/16/2020 | 空 |
2 | 4/16/2021 | 空 |
3 | 空 | x1 |
4 | 空 | x2 |
希望我清楚
谢谢
答案 0 :(得分:0)
SELECT
Raw_table_name.Acc_num,
Satellite1.Sat_date,
Satellite2.Tracking_date
FROM
Raw_table_name
JOIN Satellite1 ON Raw_table_name.Acc_num = Satillite1.Acc_num
JOIN Satellite2 ON Satellite2.Acc_num = Satellite1.Acc_num
从上面的语句中,您通过连接匹配列上的子表,从主 raw_data 表中选择输出所需的列
答案 1 :(得分:0)
选择 Raw_table_name.Acc_num, Satellite1.Sat_date, Satellite2.Tracking_date 从 原始表名 LEFT JOIN Satellite1 ON Raw_table_name.Acc_num = Satillite1.Acc_num 左连接 Satellite2 ON Satellite2.Acc_num = Satellite1.Acc_num