首页 > 其他分享 >10-7 spj-查询供应工程 j1 的供应商

10-7 spj-查询供应工程 j1 的供应商

时间:2024-08-04 23:53:04浏览次数:11  
标签:10 DEFAULT sno j1 spj NULL jno

本题目要求编写SQL语句,在SPJ数据库中,查询供应工程号为j1的供应商号 sno

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE  j  ( 
   jno  char(3) NOT NULL,  -- 工程项目号
   jname  varchar(10) DEFAULT NULL,
   city  varchar(10) DEFAULT NULL,
  PRIMARY KEY ( jno )
) ;
CREATE TABLE  p  (
   pno  char(3) NOT NULL,  -- 零件号
   pname  varchar(10) DEFAULT NULL,
   color  char(2) DEFAULT NULL,
   weight  smallint DEFAULT NULL,
  PRIMARY KEY ( pno )
) ;
CREATE TABLE  s  (
   sno  char(3) NOT NULL,  -- 供应商号
   sname  varchar(10) DEFAULT NULL,
   status  char(2) DEFAULT NULL,
   city  varchar(10) DEFAULT NULL,
  PRIMARY KEY ( sno )
) ;
CREATE TABLE  spj  (
   sno  char(3) NOT NULL,
   pno  char(3) NOT NULL,
   jno  char(3) NOT NULL,
   qty  smallint DEFAULT NULL,
  PRIMARY KEY ( sno , pno , jno ),
  CONSTRAINT  fk_jno  FOREIGN KEY ( jno ) REFERENCES  j  ( jno ),
  CONSTRAINT  fk_pno  FOREIGN KEY ( pno ) REFERENCES  p  ( pno ),
  CONSTRAINT  fk_sno  FOREIGN KEY ( sno ) REFERENCES  s  ( sno )
);

表样例:

s表:

p表:

j表:

spj表:

输出样例:

思路1:

        多个供应商可能供应多个零件给多个工程,所以我们不想在结果中重复列出相同的供应商号。因此可以使用关键字distinct消除结果中的重复行(也就是去除笛卡尔积),所以就是select distinct sno,,这里可能有人会问为什么不是select distinct jno??首先jno我们已经指定条件了:jno='j1',如果在distinct jno会显的逻辑不通,其次我们的目的是查询供应工程号为j1的供应商号 sno,也就是我们应该关注的焦点在于供应商号(而不需要关注其他细节,例如s3给j1供应了100的物件,然后s3又给j1供应了200的物件,而我们此时只需要关注的是有哪几个j1对应的供应商号,所以需要对sno去重,不需要额外关注其他细节),因此select distinct sno,然后加上from来自哪张表??spj,,最后加上条件where jno='j1',完整代码如下:

select distinct sno
from   spj
where  jno='j1';

思路2:

        子查询,要想查到供应工程号为j1的供应商号 sno,我们首先需要先在s表中查到供应商号的信息sno,select sno from s sno即可,接着通过sno的信息去定位j1,完整代码如下:

SELECT sno  
FROM s  
WHERE sno IN (  
    SELECT sno  
    FROM spj  
    WHERE jno = 'j1'  
);

思路3:

        使用多表连接,把s(供应商表)、spj(供应零件表)和j(工程项目表)三张表连接起来,连接条件是s.sno=spj.sno,,j.jno=spj.jno,,同思路1一样还是使用distinct把重复行去除掉。

select distinct spj.sno  
from s  
join spj
    on s.sno = spj.sno  
join j 
    on j.jno = spj.jno  
where j.jno = 'j1';

        我是小徐,一名正在努力学习编程的在校大学生,如果你喜欢我的内容,或者有帮助到你,请点赞鼓励支持一下吧!

标签:10,DEFAULT,sno,j1,spj,NULL,jno
From: https://blog.csdn.net/2303_76829925/article/details/140913720

相关文章

  • 基于stm32f103c8t6的蓝牙小车(可以控制车速,以及有数码管显示速度)
    蓝牙模块的理解:蓝牙可以理解为一个无线的串口,手机和单片机之间可以通过蓝牙来发送数据,控制单片机IO口,进而来控制小车,总体的逻辑是,手机发送数据给蓝牙,蓝牙将这个数据再发送给单片机。另外蓝牙的代码跟我们学的串口通信差不多。usart2.c#include"usart2.h" voiduart......
  • WIN10使用记录
     一、win10任务栏任务缩略图变列表运行中输入regedit,打开注册表编辑器。 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband在右侧窗口中找到NumThumbnails,如果没有的话也要手工新建一个Dword(32位)值,把其命名为NumThumbnails,双击NumThumbnail......
  • 火蜂精灵模拟器运行报错msvcr100.dll丢失:火蜂精灵模拟器缺失dll文件的修复办法
    有用户在运行火蜂精灵模拟器时碰到了msvcr100.dll丢失的问题,这是怎么回事呢?我们知道msvcr100.dll 是MicrosoftVisualC++2010Redistributable运行库的一部分,许多应用程序依赖于这个运行库中的函数和资源来正常运行。当火蜂精灵模拟器提示“msvcr100.dll丢失”时,意味着......
  • 校医务系统(10534)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发......
  • Luogu P10842 Piggy and Trees 题解 [ 绿 ] [ 拆边 ] [ 贡献思维 ]
    PiggyandTrees:把路径拆成边的思维题。思路一看到这题的路径,就想到了LuoguP3177树上染色这题化路径为边的贡献,分别计算的思维。那么对于此题,先来观察题目里式子的意思:对于树上的每个无序点对,求出树上每个点到这些点对之间的最短路径的距离之和。枚举点对对应的就是前两......
  • 科大讯飞p30和c10s、c10区别 选哪个好
    硬件配置方面,科大讯飞AI学习机P30采用了6+256GB的内存配置,11英寸屏幕,适合全年龄段的学生使用。而C10S和C10则分别采用了10.1英寸和4+128GB、10.1英寸和4GB的内存配置,适合小学生使用。此外,三款学习机都支持IPv6,具备较快的网络连接速度。学习资源方面,科大讯飞AI学习机P30涵盖了小学......
  • 科大讯飞学习机c10s和p30怎么选
    科大讯飞学习机P30和C10两者区别主要在硬件配置方面;软件的核心功能差别不大,都搭载了星火大模型、精准学、及1对1英语口语陪练等。硬件上:1、科大讯飞学习机P30屏幕更大些,是10.95英寸屏幕(近11英寸大小),科大讯飞学习机C10是10.1英寸2、科大讯飞学习机P30定配的是二代作答笔(白色),科大......
  • UEFI模式下Windows10重启主板喇叭报警
    UEFI模式下Windows10重启主板喇叭报警,并且无法进入bios。主板发生一件怪事,就是正常开机的情况下,开机正常进入系统,也可以进入bios,主板喇叭不会报错。但是进入到系统再手动重启的话,主板喇叭会报错,然后全程黑屏,无法进入bios,黑屏过后直接进入Windows,如果不纠结这个问题其实可以不用管......
  • 「LeetCode Top100」之哈希篇
    1.两数之和题目链接:https://leetcode.cn/problems/two-sum/description/?envType=study-plan-v2&envId=top-100-liked解题状态:通过标签:数组、哈希表思路:通过创建一个哈希表来保存数组中的元素,每当遍历一个元素时,若哈希表中不存在另一个与之相加为目标值的元素,就将元素插入......
  • 1388、STM32单片机心率(脉搏)MAX30102血氧体温检测阈值报警无线蓝牙远程(程序+原理图+
    毕设帮助、开题指导、技术解答(有偿)见文未 目录方案选择单片机的选择显示器选择方案一、设计功能二、实物图三、原理图四、程序源码五、PCB图六、proteus仿真程序流程图:原理图文字讲解:参考论文:资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩......