如何从两个表中选择许多不同的数据“s”?

时间:2011-12-30 05:58:30

标签: mysql

我有两张桌子tableA,tableB
其中两个有col“ip”,就像这样......

表A-IP
1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.4
1.1.1.5
1.1.1.6
1.1.1.7
1.1.1.8

表B-IP
1.1.1.3
1.1.1.4
1.1.1.5

我想要的是什么 1.1.1.1
1.1.1.2
1.1.1.6
1.1.1.7
1.1.1.8

如何选择?

5 个答案:

答案 0 :(得分:3)

看起来您想要设置差异(即A中的IP也不在B中),soooooo:

SELECT a.ip FROM tableA a WHERE tableA.ip NOT IN (SELECT b.ip FROM tableB)

答案 1 :(得分:2)

使用NOT IN

SELECT ip FROM TableA WHERE TableA.ip NOT IN (SELECT ip FROM TableB)

答案 2 :(得分:-1)

您可以将两个结果集与UNION结合使用。

select ip from tableA
union 
select ip from tableB;

http://dev.mysql.com/doc/refman/5.0/en/union.html

默认行为是删除重复的行。 如果您想要重复行,请使用UNION ALL。

答案 3 :(得分:-1)

select a.id from a minus select b.id from b

select a.id from a where a.id not in (select b.id from b)

答案 4 :(得分:-1)

SELECT col1, col2, .. , Ip from TableA
UNION 
SELECT col, col2, ...., Ip from TableB

要获得差异,您可以使用 MINUS 运算符代替 UNION