如果我有2个表都具有相同的列ord
表-A
id | value | ord
1 | asd | 1
2 | dfg | 5
3 | ghj | 7
table_b
id | value | ord
1 | zxc | 3
2 | cvb | 4
3 | bnm | 6
如何加入他们以获得此结果
| id | value | ord | id | value | ord
| 1 | asd | 1 | - | - | -
| - | - | - | 1 | zxc | 3
| - | - | - | 2 | cvb | 4
| 2 | dfg | 5 | - | - | -
| - | - | - | 1 | bnm | 6
| 3 | ghj | 7 | - | - | -
或者如果我不能让空列更好。
基本上我想问的是,我是否可以加入表并根据2个表中的列对所有结果进行排序,在本例中为ord
当我尝试
时SELECT * FROM table_a JOIN table_b ORDER BY ord
我遇到了字段模糊错误。
答案 0 :(得分:1)
SELECT a.id a_id
, a.value a_value
, a.ord a_ord
, NULL b_id
, NULL b_value
, NULL b_ord
FROM table_a a
UNION
SELECT NULL
, NULL
, NULL
, b.*
FROM table_b b
ORDER
BY COALESCE(b_ord,a_ord)