id값 join시 문제점 도움 부탁드려요 0 7 603

by 위드 [SQL Query] join [2020.06.04 13:47:33]


소속      ID

A회사    ab....d

A회사    a....cd

B회사    a1234cd

B회사 id와 A회사 id 가 똑같은 데이터라고 할때  join시킬수 있을까요? 

테이블은 한개의 테블에 있는 데이터 입니다

regexp_like(B회사 id, A회사 id) 조회했을때 조회는 됩니다. 하고싶은건 두개의 id를 join 하고 싶은데 방법을 모르겠습니다 ㅜㅜ

 

방법이 너무 생각이 안나서...도움 부탁드려요 ㅜ

 

by ㅇㅇ준 [2020.06.04 13:50:07]

죄송하지만...질문을 이해못했습니다.

예시를 바탕으로 조금 이해하기 쉽게 풀어서 작성해주세요..ㅠ


by 마농 [2020.06.04 14:09:50]

% 나 _ 를 이용한 LIKE 검색을 사용하면 될 것 같긴한데...
. 의 개수가 문자 개수와 정확하게 일치하지 않네요?
정확하개 일치한다면? _ 를 사용하면 될 것이고, 그렇지 않다면 % 를 사용하면 될 듯 하네요.
테이블이 하나인지? 여러개인지도 모호하구요.


by 위드 [2020.06.04 15:46:22]

답변 감사합니다 질문 내용 수정했습니다 ㅜㅜ


by ㅇㅇ준 [2020.06.04 16:07:35]

아직도 이해가 되지 않습니다.

A회사    ab....d

A회사    a....cd

A회사의 이 데이터도 같은데이터라는 말씀이신가요?

같은테이블을 조인해서 뽑고싶으신 데이터가 어떤 유형인지..

성능에 안좋을것이 예상되지만 이렇게 쿼리를 짜는것보다는 데이터를 클렌징하시는게 어떨지 한번 고민해보셔야겠습니다


by 위드 [2020.06.04 16:13:03]

이해하신게 맞습니다 다 같은 id값들입니다

데이터가 저런식으로 들어와서 id값이랑 다른 키값들을 left outer join해서 특정 데이터 값이 null인걸 찾으려고 합니다

b회사 id regexp_like로 조회하면 조회는되는데...

 


by 마농 [2020.06.04 18:54:21]
WITH t AS
(
SELECT 'A회사' cd, 'ab....d' id FROM dual
UNION ALL SELECT 'A회사', 'a....cd' FROM dual
UNION ALL SELECT 'B회사', 'a1234cd' FROM dual
)
SELECT *
  FROM t b
  LEFT OUTER JOIN t a
--  ON REGEXP_LIKE(b.id, a.id)
    ON b.id LIKE REPLACE(a.id, '.', '_')
   AND a.cd = 'A회사'
 WHERE b.cd = 'B회사'
-- AND a.cd IS NULL
;

 


by 위드 [2020.06.04 22:46:48]

ㅇㅇ준 님, 마농님 정말 감사합니다 많은 도움이 됐습니다^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입