MariaDB
[MySQL || MariaDB] 여러 테이블 한번에 카운터 하기
.java
2020. 3. 15. 17:48
반응형
개념
한 번에 여러 테이블의 값을 추출할 수 있다.
문법
문법에 들어가기 앞서, 공통 테이블 예시
기본 문법
SELECT 테이블별칭.카운트별칭,테이블별칭.카운트별칭,테이블별칭.카운트별칭
FROM
( select count(*) 카운트별칭 from 테이블명 조건(선택) ) 테이블별칭
, ( select count(*) 카운트별칭 from 테이블명) 테이블별칭
, ( select count(*) 카운트별칭 from 테이블명) 테이블별칭
예시 1.board 테이블 중 views(조회수)가 30 이상인 것, members 테이블 중 id가 1인 멤버를 카운트
SELECT a.views, b.beu
FROM (SELECT COUNT(*) views FROM board WHERE views > 30) a ,
(SELECT COUNT(*) beu FROM members WHERE id = 1) b
결과
예시 2.board 테이블의 총 조회수, 총 좋아요 수, members 테이블의 총 유저수를 카운트
SELECT a.views_length,a.likes_length, b.user_length
FROM (SELECT SUM(views) views_length,SUM(likes) likes_length FROM board) a ,
(SELECT COUNT(*) user_length FROM members) b
결과
자주 나는 오류
/* SQL 오류 (1060): Duplicate column name 'spaceAll' */
SELECT `storage`.storageAll, host.hostAll
FROM
( select sum(allca) spaceAll,sum(useca) spaceAll,sum(space) spaceAll from storageInfo) `storage`
, ( select count(*) hostAll from hostInfo) host
이와 같이 별칭을 중복으로 쓰셔서 그렇습니다.
반응형