group by, having, inner join

DB/MySQL 2010. 6. 28. 15:06

* group by..

 

group by절은 그룹별로 검색을 하게 해 준다. 특정 필드에 대해 중복이 되지 않도록

그루핑이 가능하다.

 

id 1111 school 백수초딩학교

id 1111 school 백마고등학교

id 2222 school 응가초딩학교

id 2222 school 응가대학교

 

이럴때 id로만 그루핑해서 몇명이 있는지 보고 싶을 때 group by id 를 사용한다.

group by 절을 사용할 때는 그룹 함수를 같이 사용해야 하는데, 대표적인 그룹함수에는

COUNT(), AVG(), MIN(), MAX(), SUM()이 있다.

 

* having

 

having 구문은 group by를 사용할때 연이어서 조건문 사용을 가능하게 해준다.

 

예)

 

SELECT id, COUNT(*) FROM member WHERE cc='Y' GROUP BY id HAVING COUNT(cc)=2;

 

설명:

member table에서 id가 중복되지 않게 group 으로 묶은 후에,

cc 필드의 갯수가 2인 것만 으로 조건 제약.

 

 

 

* inner join..

 

inner join에서의 조건문은 where이 아닌 on을 사용해서 쓴다.

 

예)

SELECT p.id, p.name, p.commnet FROM member AS p
LEFT INNER JOIN member_crazy AS r
ON p.id=r.id
LEFT INNER JOIN member_babo AS c
ON p.id=c.id

'DB > MySQL' 카테고리의 다른 글

[MySql] JOIN 문  (0) 2010.07.02
GROUP BY  (0) 2010.06.29
에러 코드 모음  (0) 2010.06.17
mysql 접속 여부 확인 및 에러  (0) 2010.05.31
mysql_fetch 계열 함수  (0) 2010.05.31
: