2 xuwang712 xuwang712 于 2015.06.01 11:52 提问

有两个表,字段的个数不同,想取出a表的所有数据和b表的数据不等于a表的。 2C

想取出a表的所有name 的数据和b表的name不等于a表name的数据
例如:
a表有字段 name b表也有字段 name
a表有name:张三 王五

b表有name:李四 张三

a,b两个表的字段个数不同。
最后取出的是:张三,李四,王五。

5个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.01 12:05
 select a.name from a
 union
 select b.name from b
liangquewei
liangquewei   2015.06.01 11:58

select a.name from a --取出a表的所有name 的数据
union
select b.name from b where b.name not in (select a.name from a) --b表的name不等于a表name的数据

用这个试试吧,应该就是你想要的

wsh1992o
wsh1992o   Rxr 2015.06.01 14:32

select * form a
union
select b.* from a,b where b.name != a.name;

appsna
appsna   2015.06.01 20:12

a、b两个表的列有什么不同,你只需要name信息吗。
你的问题相当于把a、b两表的name信息union到一起然后去重。
select distinct name from (select a.name from a union select b.name from b);

sumcul
sumcul   2015.06.09 12:31

如果是程序设计中,取出两张表,放到内存中,循环比较就好,至于算法很多了。。不建议用数据库复杂的写法。
如果你不是用程序设计,那么可以考虑在控制台用select语句实现。

Csdn user default icon
上传中...
上传图片
插入图片