想象一下两个表都有一个公共ID字段,它将两个表连接在一起。
让我们称之为Table1和Table2。
Table1在字段ID上加入Table2。
如何在Table2上获得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 :(得分: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;