17,377
社区成员
发帖
与我相关
我的任务
分享
1、
with tb1 as(
select '阳光小区' 小区名称,1 楼号,101 房号,'王二' 房主姓名,
3323232 身份证号码,232324 电话 from dual union all
select '月亮小区', 2, 101, '胡三', 34343, 3434343 from dual union all
select '月亮小区', 1, 202, '张飞', 34334, 243434 from dual),
tb2 as(
select 1 序号,'阳关小区' 小区名称,1 楼号,101 房号,'王二' 居住人员,
3323232 身份证号码,232324 电话 from dual union all
select 2, '阳光小区', 1 ,101 ,'王四', 33434, 2323 from dual union all
select 3, '月亮小区', 2, 101 ,'胡三', 34343, 3434343 from dual union all
select 4, '翡翠城小区', 1, 101, '梅花', 333, 33333 from dual)
--以上为提供数据的语句
select * from tb1
where not exists(select 1 from tb2
where tb1.小区名称=tb2.小区名称 and tb1.楼号=tb2.楼号
and tb2.房号=tb1.房号)
小区名称 楼号 房号 房主 身份证号码 电话
-------- ---------- ---------- ---- ---------- ----------
月亮小区 1 202 张飞 34334 243434
2、
select * from tb2
where not exists(select 1 from tb1
where tb1.小区名称=tb2.小区名称 and tb1.楼号=tb2.楼号
and tb2.房号=tb1.房号)
序号 小区名称 楼号 房号 居住 身份证号码 电话
--------- ---------- ---------- ---------- ---- ---------- ----------
1 阳关小区 1 101 王二 3323232 232324
4 翡翠城小区 1 101 梅花 333 33333
--上面使用exists,也可以使用in
--1
SELECT *
FROM table1 a
WHERE (a.小区名称, a.楼号, a.房号) NOT IN (SELECT b.小区名称, b.楼号, b.房号 FROM table2 b);
--2
SELECT DISTINCT 小区名称, 楼号, 房号
FROM table2 a
WHERE (a.小区名称, a.楼号, a.房号) NOT IN (SELECT b.小区名称, b.楼号, b.房号 FROM table1 b);
--1
select * from table1 a where not exists(select 1 from table2 b where b.小区名称=a.小区名称 and b.楼号=a.楼号 and b.房号=a.房号);
--2
select distinct 小区名称,楼号,房号 from table2 a where not exists(select 1 from table1 b where b.小区名称=a.小区名称 and b.楼号=a.楼号 and b.房号=a.房号);