我有两个表,表一个有两列: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行?
答案 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`)