我有两张桌子,一张有两列的桌子:IP和ID,桌子B有列:ID和额外信息。我想提取表B中的行,不在表A的IP所以,如果我有表A中的行与MySQL的加入和排除?
id = 1
ip = 000.000.00
id = 2
ip = 111.111.11
和我行表B中
id = 1
id = 2
然后,如果ip = 111.111.11,我怎样才能返回表B中的第1行?
我有两张桌子,一张有两列的桌子:IP和ID,桌子B有列:ID和额外信息。我想提取表B中的行,不在表A的IP所以,如果我有表A中的行与MySQL的加入和排除?
id = 1
ip = 000.000.00
id = 2
ip = 111.111.11
和我行表B中
id = 1
id = 2
然后,如果ip = 111.111.11,我怎样才能返回表B中的第1行?
SELECT * FROM `B` WHERE `ID` NOT IN (SELECT `ID` FROM `A`)
select b.id, b.*
from b
left join a on a.id = b.id
where a.id is null
这将会把所有在B中有A.没有匹配行的行您可以添加特定的IP到WHERE子句,如果你想尝试只是一个IP地址。
为什么b.id和b。*在同一时间 - 太有野心 – bensiu 2011-03-13 03:46:45
因为OP表示表中还有其他字段,但没有指定它们。所以我特别选择了他在问题中包含的领域,并且在'*'中加入了他并不是 – 2011-03-13 03:47:37
这样显而易见的领域,然而我却无法自己想出这个领域,谢谢吨! – 2013-07-05 12:46:09
将您接受的答案更改为Marc的答案。 – Pacerier 2015-04-10 13:46:35