如何使用SQL从两个表中选择最新记录?
"select * from Table1,Table2 WHERE Date=(SELECT MAX(Date) FROM Table1,Table2)"
----------- -------------
| table1 | | table2 |
----------- -------------
----------- -------------
| title | | title |
----------- -------------
| text | | text |
----------- -------------
| date | | date |
----------- -------------
答案 0 :(得分:6)
这样做:
SELECT TOP 1 * FROM
(
SELECT * FROM Table_1
UNION ALL
SELECT * FROM Table_2
)
AS ALL_RECORDS
ORDER BY Date DESC
答案 1 :(得分:3)
尝试类似:
with tmp(title, text, date) as
(
select title, text, date from table1
union
select title, text, date from table2
)
select top 1 * from tmp
order by date desc
这可以解决您的问题。
答案 2 :(得分:1)
SELECT * FTOM Table1,Tble2 ...创建一个交叉连接(两组记录的笛卡尔积),因此它将是具有相同日期的多个记录。您必须指定更多条件才能获得一条记录,并且可能使用一些连接。 如果你想从两个表中选择一个记录,例如Table1具有比Table2更新的记录,我认为使用union是个好主意,例如
SELECT col1, col2, col3, col4, ..., coln max(Date) FROM (
SELECT * FROM Table1 UNION
SELECT * FROM Table2
) GROUP BY col1, col2, col3, col4, ..., coln
ORDER BY Date;