2011-08-18 57 views
0

想象一下两个表,它们都有一个将两个表连接在一起的公共ID字段。mysql查询显示所有不加入的内容:)

让我们称他们为Table1和Table2。

表1在字段ID上连接了表2。

如何得到表2的结果都会有一个ID是

+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
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必须从表1列不表2中存在,并永远不能为null在表1。

编辑:哎呦,你可以实际使用的ID作为富,只要你用表名来限定它:

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