mysql - mysql - 按第三个表中的值对 2 个表中的数据进行排序
问题描述
我想对与 UNION 连接的 2 个不同表中的数据进行排序,排序参数必须来自第三个表。(驱动程序 > queno)
如果我对 1 个表中的数据进行排序,我会使用以下代码(完美运行):
SELECT quotedb.*
FROM quotedb
LEFT JOIN drivers
ON quotedb.driver = drivers.id
ORDER BY IF(queno = ''
OR queno IS NULL, 1, 0)
因此,当我加入 2 张桌子时,我尝试了这个但没有成功......
(
SELECT DISTINCT driver
FROM quotedb
LEFT JOIN drivers
ON quotedb.driver=drivers.id)
UNION ALL
(
SELECT DISTINCT driver
FROM packaging
LEFT JOIN drivers
ON packaging.driver=drivers.id )
ORDER BY
order by IF(queno = ''
OR queno IS NULL,1,0)
我需要做什么才能让它工作?先感谢您。
解决方案
queno
您还需要从各个 Select 查询中获取该列。
尝试以下操作:
(
SELECT DISTINCT
qdb.driver AS driver,
d.queno AS queno
FROM quotedb AS qdb
LEFT JOIN drivers AS d ON qdb.driver = d.id
)
UNION ALL
(
SELECT DISTINCT
p.driver AS driver,
d.queno AS queno
FROM packaging AS p
LEFT JOIN drivers AS d ON p.driver = d.id
)
ORDER BY
(CASE WHEN queno = '' OR queno IS NULL THEN 1
ELSE 0
END)
推荐阅读
- java - Springfox 在 Swagger 2.0 JSON 定义中创建 'ref' 类型而不是 java.io.File 对象
- python - 类型错误:/:“list”和“int”不支持的操作数类型
- python - python,beautifulsoup 标签似乎没有类型
- ios - 为视图控制器视图的边界原点设置动画时实际会发生什么?
- css - 如何将我的 React 汉堡菜单齐平放在网站的右上角?
- python - 如何在漂亮的汤标签列表中抓取内容?
- c - 有问题的scanf函数
- c++ - C++ 我怀疑这个函数的安全性
- javascript - 可以使用 JavaScript 设置 PsuedoClass 和通配符 CSS 吗?
- javascript - 此 javascript 片段中方括号的术语/概念是什么?