10-8 spj-查询至少使用s1供应商所供应的全部零件的工程

本题目要求编写SQL语句,在SPJ数据库中,查询至少用了s1供应商所供应的全部零件的工程号jno。

提示:请使用SELECT语句作

select jno
from spj
where sno='s1'
and pno in (
  select distinct pno
  from spj
  where sno='s1'
)
group by jno
/*`WHERE`筛出`s1`供应记录,
`pno IN`子查询冗余但保逻辑,
`GROUP BY`按`jno`分组,便于后续统计判断。*/
having count(jno)=(
  select count(l.pno)
  from(
    select pno
    from spj
    where sno='s1'
    group by pno
  ) l
  /*筛选`s1`供应记录,按项目分组,
  通过计数比对找出全供零件的项目号 */
);
/*HAVING子句筛选分组结果,
比较s1供应记录数与零件种类数,
相等则输出jno。 */
/*llll*/

答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值