sql 질문있습니다. 답변 부탁드립니다. 0 5 829

by 아이언조 [SQL Query] [2019.08.27 13:37:58]


안녕하세요

SQL 쿼리에 궁금한게 있어서 조언듣고자 여쭤봅니다.

      A Table       |       B Table           |  C Table        |  D Table

--------------------------------------------------

   usimnumber    |      deviceid          |    car id         |  carnum ..

                       |      usimnumber     |    deviceid     |   car id

A테이블의 usimnumber을 사용하여 B테이블의 deviceid 를 알아내고

deviceid 를 사용하여 C 테이블의 car id를 알아내고

car id 를 사용하여  D 테이블의  컬럼값알아내서

 

한번에 usimnumber , deviceid, carid, carnum 이렇게 알아낼 수 있을까요?

그냥 and만 사용해서 조회했을시에는 시간도 오래걸리고 데이터가 맞는지 확인할수가없어서 

보다 좋은 방법이있다면 알려주시면 감사하겠습니다.

 

by 우리집아찌 [2019.08.27 13:59:25]

구조가 그렇가고 하면 JOIN은 어쩔수 없을듯합니다.

성능이 이슈가 생긴다면 반정규화 또는 MVIEW 등이 대안이 될수있을거같습니다.

그전에 SQL 튜닝을 한번 해보심을 추천해드립니다. 


by 아이언조 [2019.08.27 16:03:31]

답변감사합니다 ~


by 마농 [2019.08.27 14:18:13]
SELECT a.usimnumber
     , b.deviceid
     , c.carid
     , d.carnum
  FROM tab_a a
     , tab_b b
     , tab_c c
     , tab_d d
 WHERE a.usimnumber = b.usimnumber
   AND b.deviceid = c.deviceid
   AND c.carid = d.carid
;

 


by 아이언조 [2019.08.27 16:03:22]

답변 감사합니다 하나만 더 여쭤봐도될까요?

단순 select 절 말고  Join을 사용해서는  작성할수없을까요?


by 마농 [2019.08.28 13:04:35]
SELECT a.usimnumber
     , b.deviceid
     , c.carid
     , d.carnum
  FROM tab_a a
 INNER JOIN tab_b b
    ON a.usimnumber = b.usimnumber
 INNER JOIN tab_c c
    ON b.deviceid = c.deviceid
 INNER JOIN tab_d d
    ON c.carid = d.carid
;

 

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