MySQL加入和排除?

Rio*_*Rio 8 php mysql join

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

id = 1
ip = 000.000.00
id = 2
ip = 111.111.11
Run Code Online (Sandbox Code Playgroud)

我在表B中有行

id = 1
id = 2
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*c B 28

select b.id, b.* 
from b
left join a on a.id = b.id
where a.id is null
Run Code Online (Sandbox Code Playgroud)

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

  • 因为OP说表中有其他字段,但没有指定它们.所以我特意选择他在问题中包含的字段,然后输入`*`来覆盖他没有的字段 (2认同)

Lig*_*ica 9

SELECT * FROM `B` WHERE `ID` NOT IN (SELECT `ID` FROM `A`)
Run Code Online (Sandbox Code Playgroud)