본문 바로가기
MySql

MySQL에서 하위 쿼리를 조인으로 바꾸기

by 베이스 공부 2021. 1. 10.
반응형

다음 쿼리가 있습니다.

SELECT PKID, QuestionText, Type 
FROM Questions 
WHERE PKID IN (
    SELECT FirstQuestion 
    FROM Batch 
    WHERE BatchNumber IN (
        SELECT BatchNumber 
        FROM User 
        WHERE RandomString = '$key'
    )
)

하위 쿼리가 비효율적이며 조인이 선호된다고 들었습니다. 그러나 3 개 이상의 계층 하위 쿼리를 조인 표기법으로 변환하는 방법을 설명하는 내용을 찾을 수 없으며 그것에 대해 고심 할 수 없습니다.

누구든지 그것을하는 방법을 설명 할 수 있습니까?

 

해결 방법

 

SELECT  DISTINCT a.*
FROM    Questions a
        INNER JOIN Batch b
            ON a.PKID = b.FirstQuestion
        INNER JOIN User c
            ON b.BatchNumber = c.BatchNumber
WHERE   c.RandomString = '$key'

DISTINCT 가 지정된 이유는 다른 테이블의 여러 행과 일치하는 행이있어 결과에 중복 레코드가 발생할 수 있기 때문입니다. 그러나 Questions 테이블의 레코드에만 관심이 있기 때문에 DISTINCT 키워드로 충분합니다.

조인에 대한 더 많은 지식을 얻으려면 아래 링크를 방문하십시오.


 

참조 페이지 https://stackoverflow.com/questions/15091212

 

 

반응형

댓글