我有大约 4 个具有完全相同列名的不同表。我想做的是从按日期排序的所有这些表中选择前 4 条记录(因为日期是它们共享的列之一)。
我不断收到错误的陈述,无论是语法问题还是模棱两可的记录等。
基本上我的陈述类似于:
SELECT TOP 4 date, link, anchor, thumb FROM archive1, archive2, archive3, archive4 ORDER BY date DESC
很明显,我对所有这些东西都是新手。提前感谢您的任何帮助。
我有大约 4 个具有完全相同列名的不同表。我想做的是从按日期排序的所有这些表中选择前 4 条记录(因为日期是它们共享的列之一)。
我不断收到错误的陈述,无论是语法问题还是模棱两可的记录等。
基本上我的陈述类似于:
SELECT TOP 4 date, link, anchor, thumb FROM archive1, archive2, archive3, archive4 ORDER BY date DESC
很明显,我对所有这些东西都是新手。提前感谢您的任何帮助。
您需要生成所有表的并集,然后命令它们获得最后四个:
SELECT TOP 4 date, link, anchor, thumb
FROM
(
SELECT date, link, anchor, thumb
FROM archive1
UNION ALL
SELECT date, link, anchor, thumb
FROM archive2
UNION ALL
SELECT date, link, anchor, thumb
FROM archive3
UNION ALL
SELECT date, link, anchor, thumb
FROM archive4
) archive
ORDER BY date DESC
由于您只需要四条记录,因此您可以在每个查询中添加 TOP 4 子句以及 ORDER BY date DESC 以加快速度。