2014-02-05 57 views
0

我必須使用表T1和T2。列出左表中的所有值

TBL1

Name 
A   
B 
C 
D 
E 
F 

TBL2

現在我想告訴從TBL 1中的所有記錄按照除了TBL2誰擁有的地位4.表應該看起來像那些記錄:

A C E ˚F

My query returns only result which are identical and don't have status 4: 

SELECT Tbl1.Name, Tbl2.Name 
LEFT JOIN Tbl1 ON Tbl2.Name = T1.Name 
WHERE Status != 4 
+1

那麼,你期望得到什麼以及查詢給你什麼?因爲這似乎是你要求的。 – sashkello

+0

用AND代替WHERE – Strawberry

回答

1

添加一個條件,也覺得非加入行:

SELECT Tbl1.Name 
FROM Tbl1 
LEFT JOIN Tbl2 ON Tbl2.Name = T1.Name 
WHERE Status != 4 
OR Status IS NULL 

測試對於Status IS NULL是必需的,因爲Status != 4不是所有行真正那裏沒有一個連接,因爲在這種情況下所有列都是null,並且null既不等於也不等於任何值。

此外你的查詢有點搞砸了,所以我也修正了這個問題。

+0

Bingo!就是這個。謝謝。 – Josef

0
SELECT A.name 
FROM Tbl1 A, Tbl2 B 
WHERE A.name=B.name AND B.status!=4 
+0

不幸的是,這和我的查詢一樣。在這種情況下,A和C,但不是E和F.B和D因狀態4而被排除,這是正確的,A和C也被打印出來,這也是正確的,但是E和F缺失。他們在第二個表中沒有分配狀態,但他們也應該與A和C一起打印出來。 – Josef

相關問題