如果有多个表具有相同列
表1:
==========
|id | a |
==========
|1 | aa |
|2 | bb |
|3 | cc |
|4 | dd |
==========
表2:
==========
|id | a |
==========
|1 | aa |
|2 | bb |
|3 | cc |
|4 | dd |
==========
表3:
===========
|id | a |
==========
|1 | aaa |
|2 | bbb |
|3 | ccc |
===========
如何合并3个表,使输出包含所有3个表中的所有ID。它使用最后一个表table3的ID内容,如果有ID丢失,如ID 4,它使用上次在表中看到ID 4的时间,如table2。
最终输出应如下所示:
============
|id | a |
============
|1 | aaa |
|2 | bbb |
|3 | ccc |
|4 | dd |
============
我在考虑通过完全或联合连接,但不知道如何格式化输出表像上面一样。
finaloutput = \
table3 \
.join(table2, (table3.id == table2.id), "full") \
.join(table1, (table3.id == table1.id), "full")
1条答案
按热度按时间6pp0gazn1#
我认为您正在寻找
coalesce
函数,该函数在其参数中返回第一个非空元素。在您的情况下,它将如下所示:
第一个