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

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

b表有name:李四 张三

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

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的数据

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

 select a.name from a
 union
 select b.name from b

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

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

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