MySQL加入和排除?

时间:2011-03-13 03:41:27

标签: php mysql join

我有两个表,表一个有两列:IP和ID,表B有列:ID和额外信息。我想在表B中提取不在表A中的IP的行。所以,如果我在表A中有一行

id = 1
ip = 000.000.00
id = 2
ip = 111.111.11

我在表B中有行

id = 1
id = 2

然后,给定ip = 111.111.11,如何返回表B中的第1行?

2 个答案:

答案 0 :(得分:28)

select b.id, b.* 
from b
left join a on a.id = b.id
where a.id is null

这将拉出B中没有匹配行的所有行。如果你想尝试只有那个ip,你可以在where子句中添加一个特定的IP。

答案 1 :(得分:8)

SELECT * FROM `B` WHERE `ID` NOT IN (SELECT `ID` FROM `A`)