새소식

Database/MySQL

[MySQL] 서브쿼리

  • -

 

  • 1개의 문자나 숫자를 뱉는 SELECT 문만 서브쿼리로 사용할 수 있다.
  • 서브쿼리를 사용할 때 소괄호를 사용해야한다.

 

가격이 전체 게임의 평균 가격보다 높은 게임만 출력하고 싶다.

SELECT * FROM steam.game
WHERE 가격 > (SELECT avg(가격) FROM steam.game)

 

 

 

 

게임명, 다운로드, 게임의 다운로드 수와 평균 다운로드 수의 차이를 DIFF 라는 컬럼의 이름으로하는 세가지 정보를 출력하고 싶다.

SELECT 게임명, 다운로드, 다운로드 - (SELECT AVG(다운로드) FROM steam.game) AS DIFF FROM steam.game;

 

 

 

 

 

※ 그러나 IN( )안에 서브쿼리를 사용할 때는 1개의 문자나 숫자를 뱉는 SELECT 문만 사용할 수 있는 것이 아니다!

다운로드 최상위 3개의 게임 수가 담긴 topklist 테이블에 들어있는 게임들의 가격만을 출력하고 싶다.

 

SELECT 가격 FROM steam.game
WHERE 게임명 IN (SELECT 게임명 FROM steam.topklist);

 

 

그러나 보통 테이블을 2개 이상 사용해서 결과를 출력할 때는서브쿼리 대신 JOIN 문법을 사용하는 것이 일반적이다.

 

 

 

 

728x90
Contents