여러 테이블을 처리할 때 MySQL에서 여러 열을 선택해야 할 수도 있습니다. 하위 쿼리. 그러나 단순 조인은 하위 테이블에 누락된 레코드가 있는 경우 원하는 결과를 얻지 못할 수 있습니다.
이 문제를 해결하는 열쇠는 테이블이 두 물리적 테이블 모두에서 파생될 수 있다는 점을 이해하는 데 있습니다. 그리고 하위 쿼리. 이 개념을 활용하면 단일 하위 쿼리에서 여러 열을 검색하는 것이 가능해집니다.
다음 예를 고려하세요.
SELECT a.attr, b.id, b.trans, b.lang FROM attribute a JOIN ( SELECT at.id AS id, at.translation AS trans, at.language AS lang, a.attribute FROM attributeTranslation at ) b ON (a.id = b.attribute AND b.lang = 1)
이 예에서 하위 쿼리는 다음을 포함하는 가상 테이블 b를 생성합니다. 원하는 열. 이 가상 테이블을 기본 테이블 a와 결합하면 단일 쿼리로 필요한 모든 데이터를 검색할 수 있습니다.
이 기술은 요약 또는 그룹화 테이블을 포함하도록 더욱 확장될 수 있습니다. . 예를 들어 다음 쿼리는 각 속성에 대한 번역 횟수가 포함된 가상 테이블 c를 생성합니다.
SELECT a.attr, b.id, b.trans, b.lang, c.langcount FROM attribute a JOIN ( SELECT at.id AS id, at.translation AS trans, at.language AS lang, at.attribute FROM attributeTranslation at ) b ON (a.id = b.attribute AND b.lang = 1) JOIN ( SELECT count(*) AS langcount, at.attribute FROM attributeTranslation at GROUP BY at.attribute ) c ON (a.id = c.attribute)
이 쿼리는 각 속성에 대한 번역 횟수와 함께 원하는 열을 반환합니다.
이 기술은 유연성을 제공하지만 성능도 고려해야 합니다. MySQL 최적화 프로그램은 유사한 하위 쿼리를 병합할 수 있지만 하위 쿼리의 과도한 사용을 피하고 효율성을 위해 쿼리를 최적화하는 것이 좋습니다. 일부 시나리오에서는 여러 테이블을 조인하는 것이 더 효율적인 옵션일 수 있습니다.
위 내용은 MySQL의 단일 하위 쿼리에서 여러 열을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!