gpt4 book ai didi

mysql - 连接表并按 2 个不同的列排序

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:12 25 4
gpt4 key购买 nike

我有一个查询,列出了付款(付款表),我希望它按任务的日期排序(2 个单独的表 - quotedb 和包装)这些付款与

我的查询:

SELECT a.* 
FROM payments AS a
LEFT JOIN quotedb AS b ON a.orderid = b.id
LEFT JOIN packaging AS p ON a.orderid = p.id
WHERE a.status='Pending' AND (b.moveday<'$today' OR p.datestamp<'$today')
ORDER BY b.moveday, p.datestamp

付款表示例:

id payment   orderid
-------------------
1 payment1 1
2 payment2 2
3 payment3 3
4 payment4 4
5 payment5 5
6 payment6 6

quotedb 表示例:

id moveday
-----------
1 05.07.18 > related to payments table id 1
2 08.07.18
3 10.07.18

打包表示例:

id datestamp
-----------
4 06.07.18 > related to payments table id 4
5 07.07.18
6 19.07.18

我从表中加入结果,但排序有问题,查询似乎打印了未排序的“打包”表结果,然后是按移动日期排序的“quotedb”结果

我希望这些结果按(加入的 moveday 和 datestamp)排序

最佳答案

您可以使用UNION ALL 来合并quotedbpackaging 表。并使用 grp 生成一个数字来生成 Order by 序号

SELECT a.* 
FROM payments a
LEFT JOIN
(
SELECT 1 grp,id,moveday AS day
FROM quotedb
UNION ALL
SELECT 2,id,datestamp
FROM packaging
) t on a.orderid = t.id
ORDER BY t.grp,t.day

sqlfiddle

关于mysql - 连接表并按 2 个不同的列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com