sql 联表查询不等问题

weixin_33158162 2018-05-02 03:29:13
请教各位大神
假设有两个表A,B 其中分别有字段A1,A2;A1,A2
那么我现在要查询A1和A2关联的关系在B表中的A1,A2 没有
例如
A表有 A1,A2 的值
序号 A1 A2
1 测试1 被测试1
2 测试2 被测试2
3 测试3 被测试3
B表有
序号 A1 A2
1 测试1 被测试1
2 测试2 被测试3
3 测试3 被测试2
那么因为a表的1和b表的1值相等,关联关系也是相等,所以不在查询结果里
但是a表的2和b表的2 的a1虽然相等,但是a2不想等 ,那么在查询结果
这sql如何去写



...全文
1279 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2018-05-02
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#A') is null
drop table #A
Go
Create table #A([序号] nvarchar(21),[A1] nvarchar(23),[A2] nvarchar(24))
Insert #A
select N'1',N'测试1',N'被测试1' union all
select N'2',N'测试2',N'被测试2' union all
select N'3',N'测试3',N'被测试3'
GO
if not object_id(N'Tempdb..#B') is null
drop table #B
Go
Create table #B([序号] nvarchar(21),[A1] nvarchar(23),[A2] nvarchar(24))
Insert #B
select N'1',N'测试1',N'被测试1' union all
select N'2',N'测试2',N'被测试3' union all
select N'3',N'测试3',N'被测试2'
Go
--测试数据结束
SELECT #A.*
FROM #A
JOIN #B
ON #B.序号 = #A.序号
AND (
#B.A1 <> #A.A1
OR #B.A2 <> #A.A2
);


吉普赛的歌 2018-05-02
  • 打赏
  • 举报
回复
描述得不太清楚, 你把结果列出来吧, 容易理解一点

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧