程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> sql-高分求解SQL疑難問題.

sql-高分求解SQL疑難問題.

編輯:編程綜合問答
高分求解SQL疑難問題.

題目:找出沒有銷售GEO POSITIONING SYSTEM的部門
標准解:
SELECT deptname
FROM qdept
where deptname not in
(select deptname from qsale
where itemname = 'Geo Positioning System')
我的解法
(select distinct deptname from qsale
where itemname != 'Geo Positioning System')

第一種解法我能明白它的邏輯.
但是我後來想,,既然qsale已經有我需要的兩個變量了,為何還要引用qdept這個表呢呢?後來就寫出了我的第二種解法.
寫出來之後,兩種方法輸出一看,發現結果完全不一樣,這是為什麼呢?
以下是關系圖,大家可以參考以下.
圖片說明

最佳回答:


兩個當然不一樣 舉個例子

QSALE裡面有一個deptment 有銷售過兩種item 一個是Geo Positioning System 另一個是XXX

第一個SQL是不會返回這個deptment
而第二個SQL會返回的 以為這個deptment 也賣過不是Geo Positioning System的item

總之 第一個SQL是“沒有賣過” 第二個SQL是“有沒賣過”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved