>데이터 베이스 >MySQL 튜토리얼 >여러 테이블의 COUNT(*) 결과를 단일 행으로 효율적으로 결합하려면 어떻게 해야 합니까?

여러 테이블의 COUNT(*) 결과를 단일 행으로 효율적으로 결합하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-11 13:52:42362검색

How Can I Efficiently Combine COUNT(*) Results from Multiple Tables into a Single Row?

결합COUNT(*) 여러 테이블의 결과: UNION과 데카르트 곱의 비교

여러 테이블의 데이터를 분석하려면 결과를 결합해야 하는 경우가 많습니다. 자주 수행되는 작업은 여러 테이블에서 동시에 행 수를 가져오는 것입니다.

tab1tab2의 행 개수가 필요하다고 가정해 보겠습니다. UNION 쿼리가 해결책처럼 보일 수 있습니다.

<code class="language-sql">SELECT COUNT(*) AS Count_1 FROM schema.tab1 UNION ALL SELECT COUNT(*) AS Count_2 FROM schema.tab2</code>

그러나 이렇게 하면 Count_1Count_2가 별도의 행에 있는 세로 결과 집합이 생성됩니다. 보다 체계적인 단일 행 출력을 위해서는 데카르트 곱 접근 방식을 고려하십시오.

<code class="language-sql">SELECT
  (SELECT COUNT(*) FROM tab1) AS count1,
  (SELECT COUNT(*) FROM tab2) AS count2
FROM dual;</code>

이 쿼리의 작동 방식은 다음과 같습니다.

  • dual 테이블(많은 데이터베이스 시스템의 더미 테이블)은 결합된 결과를 위한 프레임워크 역할을 하는 단일 행을 제공합니다.
  • 하위 쿼리는 각 테이블의 COUNT(*)을 독립적으로 계산합니다.
  • 이러한 하위 쿼리 결과는 count1count2으로 별칭이 지정되어 2열, 단일 행 출력을 생성합니다.

이 방법은 두 테이블의 행 수를 구조화된 단일 행으로 효율적으로 통합하여 원하는 결과를 얻습니다.

<code>count1 | count2
-------+-------
  123  |   456</code>

위 내용은 여러 테이블의 COUNT(*) 결과를 단일 행으로 효율적으로 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.