日期:2014-05-18  浏览次数:20352 次

union多表联合查询,并且每个表都能重新排序
就是一个表,例如一个主题贴表,不同的栏目选出10个最新(或随机)的贴子。如何将他们放在一个记录集里面?

SELECT   TOP   10   *   FROM   tblName   WHERE   r1=1
union   SELECT   TOP   10   *   FROM   tblName   WHERE   r1=2
union   SELECT   TOP   10   *   FROM   tblName   WHERE   r1=3
union   SELECT   TOP   10   *   FROM   tblName   WHERE   r1=4


------解决方案--------------------
--最新
select * from tblName a where 字段名 in (select top 10 字段名 from tblName where r1 = a.r1 order by 时间 desc)
--随机
select * from tblName a where 字段名 in (select top 10 字段名 from tblName where r1 = a.r1 order by newid())

/*
“字段名”的说明:任选一个在字段,这个字段在相同的栏目里是唯一的,不同的栏目之间有重复没关系。
*/