连接两个表并按单列排序

时间:2018-10-01 01:23:57

标签: 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
aaa       2
2   Mary  3
bbb       4
3   Bob   5
ccc       6

最初,我从一个连接表开始,该表保存每个表的ID及其创建日期。我想知道是否存在一种更有效的方法来连接这两个表并按创建日期排序。

或者,我可以查找最后的X条记录,然后将结果手动合并到代码中。在这里寻求建议。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则此查询应为您提供所需的结果。它产生一个按created排序的客户和订单列表。行由“客户”或“订单”值标识:

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