我有大约 4 个不同的表,它们具有完全相同的列名。我想要做的是从所有这些按日期排序的表中选择前 4 条记录(因为日期是它们共享的列之一)。
我不断收到错误的语句,无论是语法问题还是不明确的记录等。
本质上我的声明类似于:
SELECT TOP 4 date, link, anchor, thumb FROM archive1, archive2, archive3, archive4 ORDER BY date DESC
显而易见的是,我对所有这些东西都很陌生。预先感谢您的任何帮助。
你需要生产union http://msdn.microsoft.com/en-us/library/ms180026%28v=sql.105%29.aspx列出所有表,然后命令它们获取最后四个表:
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
由于您只获取 4 条记录,因此您可以向每个查询添加 TOP 4 子句以及 ORDER BY date DESC 以加快速度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)