合并两个表,包括 Athena (Presto) 中单个列中所有值的联合

Merging two tables including the union on all values in a single column in Athena (Presto)

这里是table1:

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

这是table 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

我想创建一个 table 这样的:

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 的新手,非常感谢任何帮助。

注意:我在 Amazon Athena 上运行这个

尝试以下操作。这是 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

您可以尝试使用全外连接:

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;