作者gn01398532 (GOA)
看板Database
标题[SQL ] NOT EXISTS 双重否定语法
时间Wed Jun 13 16:36:56 2018
资料库名称:
资料库版本:
内容/问题描述:
大家好,我是从零开始准备考国考的商科资讯考生。
没有实务经验所以不太了解版本,抱歉。
目前在接触基础SQL习题有碰到一些问题,我是参阅圣经本第六版
Q1:列出参与所有专案的供应商名称?
题目所给表格:
https://imgur.com/FqDfBeX
解法是用:不存在任何专案是没有参与的
解答就像此网站的解析:
https://goo.gl/fZwjDj
巢状查询是要视为FROM後面的表格一起看吗?
为何第二个FROM後面是专案,最後一个FROM是看专案供应零件?
如果我先从最内层解析,
最後一个WHERE的条件是连结到两个更外层查询的表格(供应商和专案)
就代表我得同时看到最外层的 供应商.专案.专案供应零件 的表格
我的问题点在於要如何一步一步建立多层的巢状查询,由内向外、由外向内,或是同时?
这种巢状查询要怎麽练习呢?
------------------------------------------------------------------------------
另外,关於"所有"的sql语法,何时要用"负负得正"的方式来解(即不存在...没有参与)
何时要用正向的存在方式来解(即存在)?
例如 Q2.列出所有有参与"一级棒供应商有参与的专案"的供应商
解答从"找出供应商其不存在任何一级棒参与的专案是没有参与的"
PS.为何S2集合 MINUS S1集合 为空集合 代表两者S1被包含於S2?
感谢各位,搞得我头好痛= =
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.102.181.58
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1528879019.A.353.html