一个数据库问题?

时间:2022-12-11 18:18:22
大家好,问一个数据库的问题:现在有四个表:供应商表S(SNO,SNAME,STATUS,CITY),零件表P(PNO,PNAME,COLOR,WEIGHT),工程表J(JNO,JNAME,CITY),供应情况表SPJ(SNO,PNO,JNO,QTY)  S表中有(S1,S2,S3)三个供应商。问题是: 求至少使用了供应商S1所供应的全部零件的工程号   用SQL写出。

5 个解决方案

#1


select * from j where JNO in(select JNO from SPJ where SNO='S1')

#2


只需前三个表就可以查出来了。看到你的表有点晕。

#3


引用楼主 qlong8807 的回复:
大家好,问一个数据库的问题:现在有四个表:供应商表S(SNO,SNAME,STATUS,CITY),零件表P(PNO,PNAME,COLOR,WEIGHT),工程表J(JNO,JNAME,CITY),供应情况表SPJ(SNO,PNO,JNO,QTY) S表中有(S1,S2,S3)三个供应商。问题是: 求至少使用了供应商S1所供应的全部零件的工程号 用SQL写出。

--似乎是四级数据库中题目
--把只和供应商S1有关的供应情况表按工程表进行汇总,
--要求汇总的工程表的零件种类数等于供应商S1的全部零件种类数
select JNO
from SPJ 
where SNO='S1' 
group by JNO 
having count(PNO)=(select count(PNO) from SPJ where  SNO='S1')

#4


引用楼主 qlong8807 的回复:
大家好,问一个数据库的问题:现在有四个表:供应商表S(SNO,SNAME,STATUS,CITY),零件表P(PNO,PNAME,COLOR,WEIGHT),工程表J(JNO,JNAME,CITY),供应情况表SPJ(SNO,PNO,JNO,QTY)  S表中有(S1,S2,S3)三个供应商。问题是: 求至少使用了供应商S1所供应的全部零件的工程号   用SQL写出。


select * 
from SPJ a
where not exists(select * from spj b where SNO='s1' and not exists
                        (select * from spj c where sno=a.sno and pno=b.pno)

这种 题目的写法 是 固定 的 

#5


围观~

#1


select * from j where JNO in(select JNO from SPJ where SNO='S1')

#2


只需前三个表就可以查出来了。看到你的表有点晕。

#3


引用楼主 qlong8807 的回复:
大家好,问一个数据库的问题:现在有四个表:供应商表S(SNO,SNAME,STATUS,CITY),零件表P(PNO,PNAME,COLOR,WEIGHT),工程表J(JNO,JNAME,CITY),供应情况表SPJ(SNO,PNO,JNO,QTY) S表中有(S1,S2,S3)三个供应商。问题是: 求至少使用了供应商S1所供应的全部零件的工程号 用SQL写出。

--似乎是四级数据库中题目
--把只和供应商S1有关的供应情况表按工程表进行汇总,
--要求汇总的工程表的零件种类数等于供应商S1的全部零件种类数
select JNO
from SPJ 
where SNO='S1' 
group by JNO 
having count(PNO)=(select count(PNO) from SPJ where  SNO='S1')

#4


引用楼主 qlong8807 的回复:
大家好,问一个数据库的问题:现在有四个表:供应商表S(SNO,SNAME,STATUS,CITY),零件表P(PNO,PNAME,COLOR,WEIGHT),工程表J(JNO,JNAME,CITY),供应情况表SPJ(SNO,PNO,JNO,QTY)  S表中有(S1,S2,S3)三个供应商。问题是: 求至少使用了供应商S1所供应的全部零件的工程号   用SQL写出。


select * 
from SPJ a
where not exists(select * from spj b where SNO='s1' and not exists
                        (select * from spj c where sno=a.sno and pno=b.pno)

这种 题目的写法 是 固定 的 

#5


围观~