请问 这样的sql怎么写

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

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

想了很久也想不到
请教了
...全文
152 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧