sqlserve可以实现在多对多关系的表中的查询吗

Duwamish 2005-04-09 01:40:00
有三个表a,b,c
a和b的关系是a.id=b.id,其中a.name对应多个b.code,
b和c的关系是b.code和c.code有这样的关系,b的code字段只有一个code值,而c的code可以是一个以上的以','分割的code的字符串,如:code1,code2,code3
现在是求c表中name字段等于‘xxx’的a.name的个数,
用sql 语句可以实现这样的查询吗
我知道可以实现结合程序来实现,但还是想通过sql语句来实现,请指教
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2005-04-09
  • 打赏
  • 举报
回复
用charindex(b.code,c.code)>0有问题,用一楼写的是最安全的。

如果b的code的值为"A",c的code值为"D,E,FA",你的查询就会出错。
Duwamish 2005-04-09
  • 打赏
  • 举报
回复
你说的没错,不过用charindex(b.code,c.code)>0就可以了
Duwamish 2005-04-09
  • 打赏
  • 举报
回复
谢谢,准备试一试
xluzhong 2005-04-09
  • 打赏
  • 举报
回复
select count(a.name)
from a
inner join b on a.id=b.id
inner join c on charidex(','+b.code+',',','+c.code+',')>0
where c.name='xxx'

34,594

社区成员

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

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