2

我有大约 4 个具有完全相同列名的不同表。我想做的是从按日期排序的所有这些表中选择前 4 条记录(因为日期是它们共享的列之一)。

我不断收到错误的陈述,无论是语法问题还是模棱两可的记录等。

基本上我的陈述类似于:

SELECT TOP 4 date, link, anchor, thumb FROM archive1, archive2, archive3, archive4 ORDER BY date DESC

很明显,我对所有这些东西都是新手。提前感谢您的任何帮助。

4

1 回答 1

7

您需要生成所有表的并,然后命令它们获得最后四个:

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 以加快速度。

于 2012-04-13T22:07:14.180 回答