看板 Examination 關於我們 聯絡資訊
※ [本文轉錄自 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