求SQL

wshcdr 2010-08-21 02:03:24
供应商货品表
table tb
(
sno varchar(10),
gno varchar(10)
)

sno为供应商号
gno为货品号
选中至少包含供应商 1 所供应的所有的商品的 供应商

比如 sno=1
供应了两种货品gno = 1, gno = 2

如果另有一个供货商 2供应商 供应了 gno=1
还有一个 sno= 3供应了 gno=1,gno=2,gno=3

那就要求选出 sno=3
...全文
108 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixianxxx 2010-08-21
  • 打赏
  • 举报
回复
select distinct k.sno
from tb k join(
select b.sno
from (select * from tb where sno=1) t left join tb b on t.sno<>b.sno and t.gno=b.gno
where b.gno is null) z
on k.sno<>z.sno
ACMAIN_CHM 2010-08-21
  • 打赏
  • 举报
回复
select distinct sno 
from tb a
where not exists (
select 1 from tb
where sno=3
and gno not in (select gno from tb where sno=a.sno)
)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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