여러 테이블에 대해 이를 달성하려면 UNION ALL을 사용하십시오.
구문은 다음과 같습니다.
select sum(variableName.aliasName)from ( select count(*) as yourAliasName from yourTableName1 UNION ALL select count(*) as yourAliasName from yourTableName2 ) yourVariableName;
위의 구문을 구현해 보겠습니다. 여기에서는 더 많은 테이블이 있는 샘플 데이터베이스를 사용하고 있습니다.
우리가 사용하는 두 개의 테이블은
- 사용자 데모
- 데모
다음은 두 테이블의 모든 레코드를 표시하는 쿼리입니다. 'userdemo' 테이블의 레코드를 표시하는 쿼리는 다음과 같습니다.
mysql> select *from userdemo;
다음은 출력입니다.
+--------+----------+------------------+| 사용자 ID | 사용자 이름 | 등록된 과정 |+--------+----------+------+| 1 | 존 | 자바 || 2 | 래리 | ㄷ || 3 | 캐롤 | C++ || 4 | 마이크 | C# |+--------+----------+------------------+4행 세트(0.08초)
'wheredemo' 테이블의 레코드를 표시하는 쿼리는 다음과 같습니다.
mysql> select *from wheredemo;
다음은 출력입니다.
+------+---------+| 아이디 | 이름 |+------+---------+| 101 | 맥스웰 || 110 | 데이비드 || 1000 | 캐롤 || 1100 | 밥 || 115 | Sam |+-----+----------+5행 세트(0.20초)
위의 두 테이블에서 count(*)를 구현하는 쿼리는 다음과 같습니다.
mysql> select sum(tbl.EachTableCount) -> from -> ( -> select count(*) as EachTableCount from userdemo -> UNION ALL -> select count(*) as EachTableCount from wheredemo -> )tbl;사전>다음은 출력입니다.
+-------------------------+| 합계(tbl.EachTableCount) |+-------------------------+| 9 |+-------------------------+1 행 세트(0.00초)