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。谢谢,太好了。很高兴我能帮忙。