我有兩張桌子,一張有兩列的桌子: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