从每个表按列排序

时间:2014-11-03 10:20:44

标签: mysql

如果我有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

我遇到了字段模糊错误。

1 个答案:

答案 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)