这样,假设 表1 的名 t1, 表2的名 为 t2
select t1.name from t1,t2 where t1.name != t2.name //表1中有的,表2中没有的
上一个语句的 t1.name 改成 t2.name 就是表2中有的 表1中没有的。
select t1.name from t1,t2 where t1.name = t2.name // 两者相同的
select * from zz_baojie where sid =381 union select * from zz_demos where sid =423会报错,原因就像你自己说的,两张表的字段数不同
作为程序员,其实尽量少用select * from ... 因为这种写法在后期维护的时候存在很大的隐患
正确的做法就是 select 后面跟具体的字段名, 虽然这么写比一个星号来的费时费力,但对于程序来说是有百利而无一害的
select t1.*, t2.*from 真实表 t1 full join 临时表 using (id) //using也可写成on t1.id=t2.id
where t1.f!=t2.f or (t1.f is null and t2.f is not null) or (t1.f is not null and t2.f is null)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)