作者fightforlive (學歷無用論是屁)
看板Examination
標題Fw: [SQL ] SQL語法不確定是否正確?
時間Tue Mar 29 22:38:48 2016
※ [本文轉錄自 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
→ carthur: 子迴圈若沒有from course的話,Where條件會出錯。 03/30 08:57
→ carthur: 所以Q1的原題就是「列出王小明沒有修的課程資訊」。 03/30 08:59
→ carthur: 刮號內的子查詢會先處理,Q2會出錯,所以語法錯誤。 03/30 09:02
→ carthur: 而且題目問是有參與的,請把Not Exists改為Exists。 03/30 09:04
推 scvxxx: Q1是簡單子查詢,即"列出王小明沒有修的課程資訊" 03/30 10:54
推 scvxxx: 你下面改的應該是相關子查詢,意思結果相同,但SQL內部處 03/30 10:57
→ scvxxx: 理不同吧 03/30 10:58
→ carthur: Q2解法2:Select 供應商名稱 From 供應商 03/30 11:47
→ carthur: Where 供應商.供應商代號 In ( 03/30 11:47
→ carthur: Select 供應商代號 From 專案供應零件, 專案 03/30 11:47
→ carthur: Where 專案供應零件.專案代號=專案.專案代號 ) 03/30 11:47
→ carthur: 所以,Where條件範圍,必須先From該表單才能使用。 03/30 11:49