Fw: [SQL ] SQL語法不確定是否正確?

看板Examination作者 (學歷無用論是屁)時間8年前 (2016/03/29 22:38), 8年前編輯推噓2(2010)
留言12則, 2人參與, 最新討論串1/1
※ [本文轉錄自 Database 看板 #1Mze4Q8U ] 作者: fightforlive (學歷無用論是屁) 看板: Database 標題: [SQL ] SQL語法不確定是否正確? 時間: Sat Mar 26 20:31:20 2016 資料庫名稱: 資料庫版本: 內容/問題描述: SQL語法裡的NOT EXISTS讓我有點困擾 有兩個問題想請教一下 Q1. 下面的語法意思好像是"只要有王小明修課,就不會列出課程資訊" http://imgur.com/gDGvS7z
如果要改成"列出王小明沒有修的課程資訊",應該要改成以下才對吧? http://imgur.com/wFuF1AR
Q2. 所有關聯表格如下: http://imgur.com/FqDfBeX
題目: 列出所有參與專案的供應商名稱 下面語法是否正確呢? http://imgur.com/d5Eu3YP
謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.26.186.228 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1458995482.A.21E.html ※ 編輯: fightforlive (114.26.186.228), 03/26/2016 20:37:02 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: fightforlive (111.253.161.248), 03/29/2016 22:38:48

03/30 08:57, , 1F
子迴圈若沒有from course的話,Where條件會出錯。
03/30 08:57, 1F

03/30 08:59, , 2F
所以Q1的原題就是「列出王小明沒有修的課程資訊」。
03/30 08:59, 2F

03/30 09:02, , 3F
刮號內的子查詢會先處理,Q2會出錯,所以語法錯誤。
03/30 09:02, 3F

03/30 09:04, , 4F
而且題目問是有參與的,請把Not Exists改為Exists。
03/30 09:04, 4F

03/30 10:54, , 5F
Q1是簡單子查詢,即"列出王小明沒有修的課程資訊"
03/30 10:54, 5F

03/30 10:57, , 6F
你下面改的應該是相關子查詢,意思結果相同,但SQL內部處
03/30 10:57, 6F

03/30 10:58, , 7F
理不同吧
03/30 10:58, 7F

03/30 11:47, , 8F
Q2解法2:Select 供應商名稱 From 供應商
03/30 11:47, 8F

03/30 11:47, , 9F
Where 供應商.供應商代號 In (
03/30 11:47, 9F

03/30 11:47, , 10F
Select 供應商代號 From 專案供應零件, 專案
03/30 11:47, 10F

03/30 11:47, , 11F
Where 專案供應零件.專案代號=專案.專案代號 )
03/30 11:47, 11F

03/30 11:49, , 12F
所以,Where條件範圍,必須先From該表單才能使用。
03/30 11:49, 12F
文章代碼(AID): #1M-fDw0J (Examination)