合并两个表,包括雅典娜(Presto)中单个列中所有值的并集



这是表 1:

prof_id title id date0
1       Z     0  4/3
1       A     0  4/3
1       B     0  4/4
1       C     0  4/4
2       C     0  4/6
2       D     0  4/6
2       E     0  4/6

以下是表 2:

 title id date1
  A     0 1/2
  C     0 1/2
  D     0 1/3
  E     0 1/3
  H     0 1/5
  J     0 1/6

我想创建一个这样的表:

prof_id date0  title id date1
1       4/3    Z     0  NA
1       4/3    A     0  1/2
1       4/3    B     0  NA
1       4/4    C     0  1/2
2       4/4    C     0  1/2
2       4/6    D     0  1/3
2       4/6    E     0  1/3
NA      NA     H     0  1/5
NA      NA     J     0  1/6

在这种情况下,标题中的列将是标题。我对SQL很陌生,所以任何帮助将不胜感激。

注意:我在亚马逊雅典娜上运行它

您可以尝试使用完整的外部连接:

SELECT
    t1.prof_id,
    t1.date0,
    COALESCE(t1.title, t2.title) AS title,
    COALESCE(t1.id, t2.id) AS id,
    t2.date1
FROM table1 t1
FULL OUTER JOIN table2 t2
    ON t1.title = t2.title AND
       t1.id = t2.id;

请尝试以下操作。这是ANSI,所以应该适用于任何主要的DBMS:

SELECT a.prof_id, a.date0, b.title, b.id, b.datet1
FROM [table 1] a 
RIGHT JOIN [table 2] b ON a.title = b.title

最新更新