mysql查询显示未加入的所有内容:)

时间:2011-08-18 23:23:07

标签: mysqli

想象一下两个表都有一个公共ID字段,它将两个表连接在一起。

让我们称之为Table1和Table2。

Table1在字段ID上加入Table2。

如何在Table2上获得ID为

的所有结果

3 个答案:

答案 0 :(得分:1)

猜猜你需要其中一个

SELECT * FROM table1 JOIN LEFT table2 ON table1.id=table2.id WHERE table2.id IS NULL

SELECT * FROM table1 JOIN LEFT table2 ON table1.id=table2.id WHERE table2.id IS NOT NULL

答案 1 :(得分:1)

select * from Table2 where ID not in (select ID from Table1)

select * from (select * from Table1 right join Table2 on Table1.ID = Table2.ID) where foo is NULL

其中foo必须是Table1中的一列,表2中不存在,并且在表1中永远不为空。

编辑:哎呀,你实际上可以使用ID作为foo,只要你用表名来限定它:

select * from Table1.ID right join Table2.ID where Table1.ID is NULL

如下所述: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg

同样有趣: http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

答案 2 :(得分:0)

http://www.wellho.net/mouth/158_MySQL-LEFT-JOIN-and-RIGHT-JOIN-INNER-JOIN-and-OUTER-JOIN.html是你想要的吗?!

mysql> select name, phone, selling 

from Table2 join Table1 

on Table2.pid = Table1.pid;

或者你想要:

mysql> select *

from Table2 

where Table2.pid is not null;