查询-SPJ练习2参考答案

  1. 查询每个工程及其使用零件的情况。

select distinct J.Jno,Jname,SPJ.pno

from J left join SPJ on J.Jno=SPJ.Jno;

  1. 查询所有供应商供应零件的情况。

select distinct S.Sno, Sname,SPJ.pno

from S left join SPJ on S.Sno=SPJ.Sno;

  1. 查询每个工程使用不同供应商的零件的个数。

select j.jname,sum(spj.qty)
from j left join spj 
on j.jno = spj.jno
group by j.jname,spj.sno;

  1. 查询没有供应任何零件的供应商号,供应商名。(外连接)

select s.sno, sname

from s left join spj

on s.sno= spj.sno

where pno is null;

或者:

Select sno, sname

From s

Where sno not in ( select sno from spj)

  1. 查询没有使用天津生产的零件的工程号码。

select J.Jno

from J

where Jno not in (select Jno from S,SPJ where SPJ.Sno=S.Sno and S.City='天津');

  1. 查询未采用由北京供应者提供颜色为‘红色’零件的工程名。

select Jname

from J

where Jno not in (select Jno from SPJ,S,P where SPJ.Pno=P.Pno and SPJ.Sno=S.Sno and S.city='北京'and Color='红');

  1. 查询不使用零件代码为P2的工程号和工程名。

select J.Jno, J.Jname

from J

where Jno not in (select Jno from SPJ where Pno='P2');

错误方法:

select J.Jno, J.Jname

from J,SPJ,P 

where SPJ.Pno=P.Pno and SPJ.Jno=J.Jno and P.Pno != 'P2';

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值