채택완료
두개의 쿼리 결과에서 중복되지 않는 값을 찾을려면 어찌해야 하나요>
master_table
no area
1 강남구
2 강서구
3 강동구
4 종로구
5 서대문구
data_table
no area
1 강남구
2 종로구
안녕하세요.
위와같은 구조의 두개의 테이블이 있습니다.
master_table의 area 값이 data_table의 area 값과 중복되지 않는 데이터만 뽑으려면 어떻게 해야할까요?
즉 master_table에서 강서구, 강동구, 서대문구 값만 쿼리로 뽑고 싶습니다.
|
답변 3개 / 댓글 4개
채택된 답변
+20 포인트
2020-12-03 (목) 19:41:16
select * from master_table left join ( select area as b_area from data_table group by 1) as B ON B.b_area=master_table.area
where b_area is Null
area 에 인덱스 걸려있지 않으면 속도는 느릴껍니다...
답변에 대한 댓글 1개
마지막기회
2020-12-03 (목) 20:09:31
저는 group by 후 having 카운트 이용 할듯한데 ...
아무도 이 답변이 없어서 답변 써요.
답변에 대한 댓글 1개
마지막기회
2020-12-04 (금) 20:41:09
다른 방법으로 해결은 했는데, 말씀하신 방법으로도 원하는 결과값을 얻을수 있었습니다.
감사합니다!
감사합니다!
2020-12-03 (목) 20:54:29
select * from master_table where area not in (select area from data_table)
이것도 한번 해보세요~ ^^
답변에 대한 댓글 2개
마지막기회
2020-12-03 (목) 20:57:45
이건 여기 질문올리기전에 제가 작성했던 쿼리인데 원하는값이 안나와서요 ㅠㅠ
실제로는 master_table의 area에 null 값이 포함된 row 도 있는데 혹시 그게 이유일까요?
실제로는 master_table의 area에 null 값이 포함된 row 도 있는데 혹시 그게 이유일까요?
2020-12-03 (목) 21:14:13
select
a.area,b.c
from master_table a
left outer join
data_table b
on
a.area = b.c
where b.c IS null
a.area,b.c
from master_table a
left outer join
data_table b
on
a.area = b.c
where b.c IS null
답변을 작성하려면 로그인이 필요합니다.
근데 알려주신 쿼리의 경우, data_table의 area값이 master_table의 area 값과 중복되는것이 없을경우 결과가 안나오는데 어떻게 수정해야 할까요?