合并具有公共列名的多个表
Merge multiple tables with a common column name
我正在尝试合并多个具有公共列名的表,这些列名不需要跨表具有相同的值。例如,
-tmp1-
id dat
1 234
2 432
3 412
-tmp2-
id nom
1 jim
2
3 ryan
4 jack
-tmp3-
id pin
1 gi23
2 x4ed
3 yit42
8 hiu11
如果上面是输入,输出需要是,
id dat nom pin
1 234 jim gi23
2 432 x4ed
3 412 ryan yit42
4 jack
8 hiu11
提前致谢。
postgresql 8.2.15 on greenplum from R(pass-through queries)
使用FULL JOIN ... USING (id)
语法。
请看例子:http://sqlfiddle.com/#!12/3aff2/1
这是不同连接类型的工作方式(假设 tab1.row3
满足与 tab2.row1
的连接条件,并且 tab1.row3
满足 tab2.row2
):
| tab1 | | tab2 | | JOIN | | LEFT JOIN | | RIGHT JOIN | | FULL JOIN |
-------- -------- ------------------------- ------------------------- ------------------------- -------------------------
| row1 | | tab1.row1 | | tab1.row1 |
| row2 | | tab1.row2 | | tab1.row2 |
| row3 | | row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 |
| row4 | | row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 |
| row3 | | tab2.row3 | | tab2.row3 |
| row4 | | tab2.row4 | | tab2.row4 |
我正在尝试合并多个具有公共列名的表,这些列名不需要跨表具有相同的值。例如,
-tmp1-
id dat
1 234
2 432
3 412
-tmp2-
id nom
1 jim
2
3 ryan
4 jack
-tmp3-
id pin
1 gi23
2 x4ed
3 yit42
8 hiu11
如果上面是输入,输出需要是,
id dat nom pin
1 234 jim gi23
2 432 x4ed
3 412 ryan yit42
4 jack
8 hiu11
提前致谢。
postgresql 8.2.15 on greenplum from R(pass-through queries)
使用FULL JOIN ... USING (id)
语法。
请看例子:http://sqlfiddle.com/#!12/3aff2/1
这是不同连接类型的工作方式(假设 tab1.row3
满足与 tab2.row1
的连接条件,并且 tab1.row3
满足 tab2.row2
):
| tab1 | | tab2 | | JOIN | | LEFT JOIN | | RIGHT JOIN | | FULL JOIN |
-------- -------- ------------------------- ------------------------- ------------------------- -------------------------
| row1 | | tab1.row1 | | tab1.row1 |
| row2 | | tab1.row2 | | tab1.row2 |
| row3 | | row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 |
| row4 | | row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 |
| row3 | | tab2.row3 | | tab2.row3 |
| row4 | | tab2.row4 | | tab2.row4 |