我有两个表的数据为 -有没有更好的办法 - UNION ALL /顺序按
TestTable1 TestTable2
---------- ----------
Id Name DealDate Id Name DealDate
1 aaTable 2010-09-22 1 aaTable2 2010-09-23
2 bbTable 2010-09-23 2 bbTable2 2010-09-24
3 ccTable 2010-09-28 3 ccTable2 2010-09-26
4 ddTable 2010-09-25 4 ddTable2 2010-09-27
我想有从TestTable1 + TestTable2的结果集只有2个最新记录回到这一点 -
Id Name DealDate
4 ccTable 2010-09-28
3 ddTable2 2010-09-27
这是我当前的查询
SELECT TOP 2 * FROM
(
SELECT * FROM
(SELECT TOP 2 Id, Name, DealDate FROM TestTable1 ORDER BY DealDate DESC) T1
UNION ALL
SELECT * FROM
(SELECT TOP 2 Id, Name, DealDate FROM TestTable2 ORDER BY DealDate DESC) T2
) T1T2
ORDER BY DealDate DESC
谁能请摹使用更好的方式(性能明智/可读性明智)来实现这一目标?
P.S.上面的表格只是介绍用例,我的实际表格有数千条记录。
谢谢!
您是否真的有这种方法的性能问题? – Oded
如果最近的两笔交易在同一张表中,您是否只需要那两张最新的交易?或者你是否总是想要TestTable1中的一个和TestTable2中的一个? – Arj