반응형
다음 쿼리가 있습니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL Apache Solr를 mysql과 연결하는 방법 (0) | 2021.01.10 |
---|---|
MySQL PHP와 MySQL-소스 코드에서 비밀번호를 피하는 방법? (0) | 2021.01.10 |
MySQL pdo에서 문자열을 이스케이프하는 방법은 무엇입니까? (0) | 2021.01.10 |
MySQL C #을 사용하여 원격 MySQL 서버에 연결하는 방법은 무엇입니까? (0) | 2021.01.10 |
MySQL Codeigniter 메시지 : 정의되지 않은 변수 : 쿼리 (0) | 2021.01.10 |
댓글