Mysql 连接两个表并按单列排序
假设我有两张桌子,一张是顾客桌,一张是订单桌。目标是显示客户何时加入以及订单何时创建的时间线 客户Mysql 连接两个表并按单列排序,mysql,join,Mysql,Join,假设我有两张桌子,一张是顾客桌,一张是订单桌。目标是显示客户何时加入以及订单何时创建的时间线 客户 id name created 1 John 1 2 Mary 3 3 Bob 5 id created aaa 2 bbb 4 ccc 6 订单 id name created 1 John 1 2 Mary 3 3 Bob 5 id created aaa 2 bbb 4 ccc 6 组合 id name created 1 John 1
id name created
1 John 1
2 Mary 3
3 Bob 5
id created
aaa 2
bbb 4
ccc 6
订单
id name created
1 John 1
2 Mary 3
3 Bob 5
id created
aaa 2
bbb 4
ccc 6
组合
id name created
1 John 1
aaa 2
2 Mary 3
bbb 4
3 Bob 5
ccc 6
最初,我从一个包含每个表的ID和创建日期的联接表开始。我想知道是否有更有效的方法连接这两个表并按创建日期排序
或者,我可以查找最后的X记录,并在代码中手动合并结果。在此处寻求建议。如果我正确理解了您的问题,此查询将为您提供所需的结果。它生成一个客户和订单列表,按创建的
排序。行由“客户”或“订单”值标识:
SELECT *
FROM (SELECT 'Customer' AS type, id, name, created FROM Customer
UNION ALL
SELECT 'Order', id, '', created FROM Orders) u
ORDER BY created, type
输出:
type id name created
Customer 1 John 111
Order aaa 111
Customer 2 Mary 222
Order bbb 222
Customer 3 Bob 333
Order ccc 333
您需要一个外键,例如订单表上的customer\u id
,它可以将订单指向特定的客户。我想您误解了,我没有试图将这两行合并为一行。我将更新问题以澄清。看起来您理解正确。让我确认一下解决方案。@Rawr刚刚编辑了包含客户名称的内容,wellWorks perfect。谢谢,太好了。很高兴我能帮忙。