我正在做一個SQL鍛鍊,上面寫着:獲得錯誤結果集使用時=在MySQL的日期練習
寫SQL語句來顯示或者未在日發表這些訂單2012-09- 10,由身份證號碼爲505及以下的推銷員或購買金額爲1000.00及以下的訂單發行。
好吧,當我看着我的查詢與正確答案,他們似乎在並行邏輯,但我得到錯誤的結果集。任何人都可以幫助我理解爲什麼我的查詢會出錯嗎?
我的查詢:
SELECT * FROM orders WHERE
((ord_date != '2012-09-10' AND salesman_id <= 505) OR
purch_amt <= 1000);
正確答案:
SELECT * FROM orders WHERE NOT
((ord_date = '2012-09-10' AND salesman_id > 505)
OR purch_amt > 1000.00);
下面首先是我的結果集的屏幕截圖,再加上正確的結果集。我明白我的結果集是錯的,我只是不明白爲什麼我的查詢會得到這些信息。
你想知道爲什麼即使你過濾了你的結果,你爲什麼得到salesman_id> 505? – minatverma
在你的練習中有3個條件可以加入。所以你也應該澄清哪兩個在一起(1,2)或(2,3)。 – minatverma
您的查詢是正確的關於'<= 1000'。這個問題的原始語言和措辭是什麼?因爲英語不明確,所以「不是......和」,它使用「......或者」不正確。 – philipxy