让我们说我有两个表,一个是客户,一个是订单。目的是显示时间表以及创建订单时客户加入的时间。
客户
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条记录,然后将结果手动合并到代码中。在这里寻求建议。
答案 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