假设我们有两个包含 id 和 timestamp 列的表。 我们如何按照时间戳的顺序有选择地显示两个表中前 10 条记录的 id。
例如,首先我们在表 1 中创建了一条记录,然后我们在表 2 中创建了一条记录,然后我们在表 1 中创建了一条记录,然后我们在表 2 中创建了一条记录......等等。
最佳答案
根据您的 RDBMS,您可以使用 ROWNUM、LIMIT,或使用 Row_Number() OVER (ORDER BY datefield DESC) 创建您自己的 Row_Number。
这可能有效(对于 Oracle)。
select *
from
( select id, datefield from Table1
union select id, datefield From Table2 order by datefield desc ) t
where ROWNUM <= 10;
对于 MySQL:
select *
from
( select id, datefield from table
union select id, datefield from table2 ) t
order by datefield desc
limit 10;
对于 SQL Server:
select *
from
(
select *, Row_Number() OVER (ORDER BY datefield DESC) as rown
from
( select id, datefield from table
union select id, datefield from table2 ) t
) t2
where rown <= 10
祝你好运。
关于mysql - 如何按创建时间顺序选择性地显示两个表中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14461290/