我試圖生成一個SQL語句,我需要擺脫所有具有歸因於它們的某些特徵的'用戶'。這裏是這裏的例子SQL select語句除外
+------+-------+
| User | Trait |
+------+-------+
| A | Fire |
| A | Water |
| A | Air |
| B | Water |
| B | Air |
| C | Water |
| C | Fire |
+------+-------+
使用SQL我想刪除所有與它們相關的特徵激發的用戶。
所以基本上,事後,我們就只剩下
+------+-------+
| User | Trait |
+------+-------+
| B | Water |
| B | Air |
+------+-------+
如果我能夠在Excel中使用的東西篩選出來,而不是通過SQL,這將正常工作。我一直在尋找各種方法,但從我嘗試過的方式來看,大多數方法只會刪除具有該特徵的單行,而不是與用戶一起刪除。
我需要SQL中我看着SQL除外
For (i = table.length; i++)
If Trait = Fire
getVal(User(i))
DeleteRows(User(i))
行翻譯的東西,但我使用的表是一個相當複雜一點,所以用一些幫助一個基本的例子很高興能帶領我走向正確的方向。
感謝
丟棄用戶ID從表中刪除行?或者只是不選擇他們? – MatBailie
不選擇他們 – khgove
你有兩個答案之間的選擇,一個使用NOT IN和另一個NOT EXISTS。如果'user'(或者它是'userid'?)不是NULL,它們是等價的。如果它可能爲空,那麼NOT IN可能不會產生期望的結果。如果你有一行user = NULL和Trait ='Fire',那麼NULL,'Fire'將出現在子查詢的結果集中,而NOT IN將導致拒絕外部查詢中的ALL ROWS。在大多數情況下,NOT EXISTS更安全。 – mathguy