一个简单SQL 查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 14:21:14
有两张表,包含同一个字段,比如说是名字。比如a表有全部数据,b表只有部分。怎么查询出a表里不包含B表全部数据的剩余部分

你的意思翻译成sql语言的意思是:
1、从a表查询名字【select 名字 from a】
2、但是这个名字要不在b表中【where 名字 not in(select 名字 from b);】
3、写出来就是下面这样:
select 名字 from a where 名字 not in(select 名字 from b);

---
以上,希望对你有所帮助。

遍历a表,对每一条记录再遍历b表,如果找到字段相同项就flag置为1,退出内循环,在每一层外循环最后做判断,如果flag==0则把记录显示出来(每一次外循环的开始都把flag置为0)

select a.*,b.* from a
LEFT JOIN b ON a.字段=b.字段
where a.字段<>b.字段
字段 是指 a表跟b表的 相同字段

测试通过:
SELECT * FROM [A表名] WHERE [名字] NOT IN (SELECT [名字] FROM [B表名]);

可以用表连接,或者子查询
不过一般情况下子查询的速度要大于表连接的
下面的是一个子查询的
select * from a where name not in(select name from b)