对比几个表的数据,取前20条记录(SQL)

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:06:08
我有3个表,各个表之间没有字段关联.
我现在想查出这3个表中前20条记录,根据每个表中的time字段来查.
查最新的20条.

也就是这样的,各个表取order by time desc前20条出来,然后3个表根据time对比,
取对比后time最新的前20条 ..
有可能表1前20条比其他两个表time最新.
所以就是取表1的前20条记录

这样的sql要怎么写,高手帮帮忙.
一楼和二楼的都有问题啊,用不了 .
第一个报 在关键字 'order' 附近有语法错误。
第二个 除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

3个表之间没有字段关联的..

对不起,测试了后发给你新的SQL,不过你字段名称有问题,time是sql server保留字!
select top 20 * from
(
select * from
(select top 20 * from 表a order by [time] desc) a
union
select * from
(select top 20 * from 表b order by [time]desc) b
union
select * from
(select top 20 * from 表c order by [time]desc) c
) d order by moddate desc
---------
你这个问题其实不复杂,不过你要注意,你3个表结构必须有相似字段才能完成
select top 20 * from
(
select top 20 * from
(select * from 表a order by time desc) a
union
select top 20 * from
(select * from 表c order by time desc) b
union
select top 20 * from
(select * from 表c order by time desc) c
) d order by time

select top 20 * from
(
select top 20 * from 表a order by time desc
union all
select top 20 * from 表b order by time desc
union all
select top 20 * from 表c order by time desc
) d order by time desc
前提 三个表中的 字段都必须相同!

select * from