a表:
com_id companyname
1 A新闻社
2 B新闻社
3 C新闻社b表:
news_id com_id news_title
1 1 标题1
2 1 标题2
3 2 标题3
4 2 标题4
5 3 标题5
6 3 标题6结果:
news_id com_id news_title
1 1 标题1
3 2 标题3
5 3 标题5也就是在B表中在每个新闻社里各取一条新闻出来。
请问这个查询应该怎么写?
com_id companyname
1 A新闻社
2 B新闻社
3 C新闻社b表:
news_id com_id news_title
1 1 标题1
2 1 标题2
3 2 标题3
4 2 标题4
5 3 标题5
6 3 标题6结果:
news_id com_id news_title
1 1 标题1
3 2 标题3
5 3 标题5也就是在B表中在每个新闻社里各取一条新闻出来。
请问这个查询应该怎么写?
select top 1 news_id com_id news_title form b where com_id=2
select top 1 news_id com_id news_title form b where com_id=3
*
from
b
where
id in (
select
min(news_id)
from
b
group by
com_id
)
--@b为b表
select a.* from @b a where not exists(select 1 from @b where [com_id] = a.[com_id] and [news_id] < a.[news_id])
或者:
select com_id,news_id from b b1 where news_id=(select top 1 news_id from b b2 where b2.com_id=b1.com_id order by news_id)这样没用in操作和group by,效率会更高。