Mysql 从每个表按列排序联接
如果我有两个表都有相同的列Mysql 从每个表按列排序联接,mysql,Mysql,如果我有两个表都有相同的列ord 表a id | value | ord 1 | asd | 1 2 | dfg | 5 3 | ghj | 7 表b id | value | ord 1 | zxc | 3 2 | cvb | 4 3 | bnm | 6 我怎样才能加入他们来获得这个结果 | id | value | ord | id | value | ord | 1 | asd | 1 | - | - | - | - |
ord
表a
id | value | ord
1 | asd | 1
2 | dfg | 5
3 | ghj | 7
表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 | - | - | -
或者如果我没有更好的空列
基本上,我想问的是,我是否可以连接这些表,并根据这两个表中的列对所有结果进行排序,在本例中为ord
当我尝试
SELECT * FROM table_a JOIN table_b ORDER BY ord
我发现字段不明确错误。#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near.ord b_ord的正确语法。表a a中的UNION SELECT NULL,NULL,NULL,'在第6Oops行已修复-(允许您自己解决此问题!)是的,还有一个轻微错误,但它正在工作,太棒了!谢谢显然,
COALESCE
是我在这个问题上寻找的神奇词汇
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)