我想写一个给出以下结果的sql。这可能吗?我尝试使用 UNION,但它只适用于一条记录。
col1 | col2 | col3 | col4
--------------------------
一个 | 10 | |
| 2 | val1 | val2
| 5 | val3 | val4
| 3 | val5 | val6
乙| 11 | |
| 3 | val7 | val8
| 5 | val9 | val10
| 3 | val0 | val12
这是我的查询:
SELECT a.val1, NULL val2, a.val3 FROM table1 a
WHERE a.val1 = 'A'
UNION
SELECT NULL val1, b.val2, b.val3 FROM table2 b
WHERE b.val1 = 'A' ;
也许这会使问题更清楚。
想象一下,如果我运行查询:
SELECT a.val1, NULL val2, a.val3 FROM table1 a
UNION
SELECT NULL val1, b.val2, b.val3 FROM table2 b ;
我希望结果集如上图所示。
col1 | col2 | col3 | col4
--------------------------
一个 | 10 | |
| 2 | val1 | val2
| 5 | val3 | val4
| 3 | val5 | val6
乙| 11 | |
| 3 | val7 | val8
| 5 | val9 | val10
| 3 | val0 | val12