本题目要求编写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*/
答。