>데이터 베이스 >MySQL 튜토리얼 >단일 SQL 쿼리에서 여러 테이블의 개별 개수를 얻는 방법은 무엇입니까?

단일 SQL 쿼리에서 여러 테이블의 개별 개수를 얻는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-11 13:47:43873검색

How to Get Separate Counts from Multiple Tables in a Single SQL Query?

*여러 테이블에서 개수 선택()**

데이터베이스 테이블 작업 시 여러 테이블에서 개수를 가져와 결과를 별도의 열로 표시해야 하는 경우가 있습니다. 두 개의 서로 다른 테이블(tab1 및 tab2)에서 개수를 검색하려고 할 때 일반적인 문제가 발생합니다.

당신이 언급한 UNION ALL을 사용하는 것이 일반적인 방법입니다. 그러나 이 방법은 하나의 열만 포함하고 개수가 차례로 표시되는 결과 집합을 생성합니다.

이 제한을 극복하고 별도의 열에 개수를 표시하려면 다른 SQL 접근 방식이 필요합니다.

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

이 쿼리에서 SELECT 문에는 두 개의 하위 쿼리가 포함되어 있습니다.

  • 첫 번째 하위 쿼리(괄호로 묶음)는 tab1에서 COUNT(*)를 가져와 별칭 count1에 할당합니다.
  • 두 번째 하위 쿼리(역시 괄호로 묶음)는 tab2에 대해 동일한 작업을 수행하지만 count2에 할당합니다.

FROM 절은 Oracle 데이터베이스의 가상 테이블인 이중 테이블을 사용합니다. 항상 하나의 열만 있는 하나의 데이터 행을 반환합니다. 이는 두 하위 쿼리의 개수를 수용하기 위해 결과 집합 구조(교차 조인과 유사)를 만드는 데 필요합니다.

따라서 이 쿼리는 각각 tab1과 tab2의 개수를 포함하는 count1과 count2라는 두 개의 열이 있는 출력을 생성합니다. 이 접근 방식을 사용하면 서로 다른 두 테이블의 COUNT(*) 값을 명확하고 순서대로 표시할 수 있습니다.

위 내용은 단일 SQL 쿼리에서 여러 테이블의 개별 개수를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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