
sqlserver如何查询2个表相同字段不同的数据?
比如表A,表B都有字段'name'表A:name张三李四王五表B:name李四然后表2比表1少了张三和王五,我想把这两条查出来应该怎么写?...
比如表A,表B都有字段'name'
表A:
name
张三
李四
王五
表B:
name
李四
然后表2比表1少了张三和王五,我想把这两条查出来
应该怎么写? 展开
表A:
name
张三
李四
王五
表B:
name
李四
然后表2比表1少了张三和王五,我想把这两条查出来
应该怎么写? 展开
12个回答
展开全部
可以用IN啊:
(select * from a where name not in (select name from b))---适用于A表包含B表记录的情况
union
(select * from b where name not in (select name from a))---适用于B表包含A表记录的情况
为什么用union呢,假如表B:name字段再多一个“赵六”的值,那么只用select * from a where name not in (select name from b)查询的结果是不包含“赵六”的,所以完整写法:
(select * from a where name not in (select name from b))
union
(select * from b where name not in (select name from a))
(select * from a where name not in (select name from b))---适用于A表包含B表记录的情况
union
(select * from b where name not in (select name from a))---适用于B表包含A表记录的情况
为什么用union呢,假如表B:name字段再多一个“赵六”的值,那么只用select * from a where name not in (select name from b)查询的结果是不包含“赵六”的,所以完整写法:
(select * from a where name not in (select name from b))
union
(select * from b where name not in (select name from a))
展开全部
SELECT * from A WHERE NOT EXISTS (SELECT 1 FROM B)
UNION ALL
SELECT * FROM B WHERE NOT EXISTS (SELECT 1 FROM A)
查询A中有但B中没有 和 B中有但A中没有的所有数据
UNION ALL
SELECT * FROM B WHERE NOT EXISTS (SELECT 1 FROM A)
查询A中有但B中没有 和 B中有但A中没有的所有数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select *from A a where a.name not in (select name from B )
你看看可以不好久没用过sqlserver了 不知道有没有语法错误
你看看可以不好久没用过sqlserver了 不知道有没有语法错误
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如表1是存储姓名的,表2是存储成绩的。现在要查出缺考的学生(这跟你的意思是一样的)。那就这样写:select biao1.name,biao2.marks from biao1 left out join biao2 on(biao1.id=biao2.id) where marks=null
biao1.id=biao2.id:表示两张表存在关系
biao1.id=biao2.id:表示两张表存在关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据题意,比较简单,一楼和二楼就很好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询