집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스 테이블에서 모든 테스트를 통과한 자동차를 선택하는 방법은 무엇입니까?
데이터베이스 쿼리: 모든 테스트를 통과한 자동차 식별
이 가이드는 사전 정의된 테스트 세트를 성공적으로 완료한 자동차를 데이터베이스에서 효율적으로 선택하는 방법을 보여줍니다. passedtest
테이블에서 모든 테스트(A, B, C, D)를 통과한 자동차를 식별해야 하는 시나리오에 중점을 둘 것입니다.
IN
문의 한계
IN
문은 목록 내에 값이 있는지 확인하는 데 유용하지만 이 특정 작업에는 적합하지 않습니다. IN
를 사용하면 필수 테스트 중 하나만 통과한 자동차도 잘못 식별됩니다. 보다 강력한 접근 방식이 필요합니다.
집계 및 그룹화 활용
해결책은 집계 함수와 그룹화를 사용하는 것입니다. 우리는 COUNT()
함수를 사용하여 각 자동차가 통과한 고유한 테스트 유형의 수를 결정합니다. 그런 다음 GROUP BY
절은 자동차 이름별로 결과를 정리하여 자동차별로 고유한 테스트 수를 셀 수 있도록 합니다.
HAVING
HAVING
절은 그룹화된 결과를 필터링하는 데 매우 중요합니다. 이를 통해 필요한 총 테스트 수(이 경우 4개)와 동일한 고유 테스트 유형 수가 있는 자동차를 격리할 수 있습니다.
SQL 솔루션
다음 SQL 쿼리는 원하는 결과를 얻습니다.
<code class="language-sql">SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4;</code>
이 쿼리는 carname
테이블에서 지정된 네 가지 테스트를 모두 통과한 passedtest
만을 효율적으로 선택합니다.
종합 데이터 쿼리 확장
모든 테스트를 통과한 자동차에 대한 추가 세부 정보를 검색하려면 중첩 쿼리를 활용할 수 있습니다.
<code class="language-sql">SELECT * FROM cars WHERE carname IN ( SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4 );</code>
이 향상된 쿼리는 cars
테이블의 모든 테스트를 통과한 것으로 식별된 자동차에 대한 passedtest
테이블의 모든 열을 검색합니다.
위 내용은 데이터베이스 테이블에서 모든 테스트를 통과한 자동차를 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!