테스트 사이트 - 개발 중인 베타 버전입니다

쿼리질문좀요 ㅠㅠㅠ 채택완료

김가경 3년 전 조회 2,570

1. 고객테이블 (idx, 등등등)

2. 고객사진테이블 (idx / 고객테이블 idx / 이미지)

 

지금 운영중인 사이트에서 

[고객테이블]에 업로드된 사진은 [고객사진테이블]에서 따로 저장하고있습니다.

 

혹시 고객사진이 없는 자료들을 한번에 뽑아보고싶은데..어떤식으로 쿼리를 작성해야할까요..

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

그냥 단순히 생각하면

 

select * from 고객테이블 where idx not in (select 고객테이블 idx from 고객사진테이블)

 

in의 select에 데이터가 엄청 많으면 안 될수도 있긴한데... 일단 이렇게 해보시죠. 

 

그리고 아마 테이블 데이터가 1:1 매칭일거 같은데 위에 방법이 안 된다면

 

join을 한 다음에 사진이 없는것만 뽑아오시는것도 방법 입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

하이바네
3년 전
진행하시게되면 플래토님이 말씀해주신 exists로 하시는게 좋을듯 합니다.

댓글을 작성하려면 로그인이 필요합니다.

플래토
3년 전

 

exists로 판단하는 겁니다

 

select * from 고객테일 a 

where not exists ( select 'x' from 고객사진테이블 b

     where a.idx = b.고객테이블idx)

 

로 하시면 

동일조건에서 가장 빠른 속도로 처리됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
https://planet.mysql.com/entry/?id=24888
참고용입니다.

댓글을 작성하려면 로그인이 필요합니다.

녹두탐
3년 전

조인을 이용하면 될 것 같습니다

</p>

<p>select

    *

from

    고객테이블

LEFT JOIN 고객사진테이블 ON

    고객테이블.고객테이블idx = 고객사진테이블.고객테이블idx

WHERE

    고객사진테이블.이미지 IS NULL</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인