我試圖獲得NOT EXISTS
的掛起並遇到一些麻煩。 說我有一個2表。瞭解不存在
Employees:
+------+------+
| eid | name |
+------+------+
| 1 | Bob |
| 2 | Alice|
| 3 | Jill |
+------+------+
Transactions:
+----------+----------+----------+-----------+
| tid | eid | type | amount |
+----------+----------+----------+-----------+
| 1 | 1 | Deposit | 50 |
| 2 | 1 | Open | 500 |
| 3 | 3 | Open | 200 |
| 4 | 2 | Withdraw | 25 |
| 5 | 2 | Open | 100 |
+----------+----------+----------+-----------+
比方說,我想找到所有未開立任何帳戶的所有僱員的名稱,金額爲$ 250或更高。這意味着我只想要員工已經開設了一筆金額爲< 250美元的賬戶。 現在我有這樣的事情...
SELECT name FROM Employees e
WHERE NOT EXISTS (
SELECT * FROM Transactions t
WHERE t.type <> 'Open' AND t.amount >= 250 AND t.eid = e.eid);
這顯然是錯誤的,我真的不明白爲什麼。
「這意味着我只想要員工打開一個金額<250美元的賬戶的行。「---所以你希望用戶使用」OPEN「和」<250「進行交易? – zerkms
我認爲您的問題有點含糊:「沒有開立任何金額爲250美元或更高的帳戶的員工」與「開立金額低於250美元的帳戶的員工」不同。第一種情況將包括從未開立賬戶的員工。你在追求什麼? – BellevueBob
對不起。只有開設了金額低於250美元的賬戶的員工。 – user1378863