导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请问 这样的sql怎么写

cloudgamer 2007-12-17 01:57:32
例如表有字段id pageid tagid

我想要的是在表中找pageid等于指定值,而且其tagid值在表中只有一个的id集合

想了很久也想不到
请教了
...全文
107 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudgamer 2007-12-17
我有个方法

delete from [tag] where id in(select tagid from [tagmap] where tagid in(select tagid from [tagmap] where pageid=@info_id) group by tagid having count(*)=1)

这个是能实现的
但好像效率好像很差啊
回复
cloudgamer 2007-12-17
我试过
delete from [tag] where id in(select tagid from [tagmap] where pageid=@info_id group by tagid having count(*)=1)

但 group by tagid having count(*)=1 是没有效的
好像是先pageid=@info_id的结果再group by
但我想要的结果是group by是对整个表的

谢谢了
回复
liangCK 2007-12-17
delete from [tag] where id in(select id
from table
where paggeid = ??
group by id
having count(1) = 1)
回复
cloudgamer 2007-12-17
说错了应该是
我想要的是在表中找pageid等于指定值,而且其tagid值在表中只有一个的tagid集合
回复
fa_ge 2007-12-17
delete t
where id in (select id from t2)
and pageid=???
回复
jinjazz 2007-12-17
select * from xx where pageid='aa'
where tagid in(select tagid from xxx where pageid='aa' group by tagid having(count(*)=1))
回复
cloudgamer 2007-12-17
我的目的是
delete from [tag] where id in(这个集合)

或者能做到同样效果的也行
谢谢了
回复
-狙击手- 2007-12-17
select id
from table
where paggeid = ??
group by id
having count(1) = 1
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告