列出左表中的所有值

时间:2014-02-05 12:14:23

标签: mysql join

我有桌子,T1和T2。

TBL1

Name   
A          
B
C
D
E
F

TBL2

Name   Status
A       0
B       4
C       1
D       4

现在我想根据Tbl2显示来自Tbl1的所有记录,除了那些状态为4的记录。该表应如下所示:

一个 C Ë ˚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

2 个答案:

答案 0 :(得分: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既不等于也不等于任何价值。

你的查询也有些搞砸了,所以我也解决了。

答案 1 :(得分:0)

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