MYSQL_04_ SUBQUERY

JOO·2021년 12월 24일

MYSQL

목록 보기
4/7

비상관 SUBQUERY

Categories 테이블에서 세개의 컬럼을 가져오고, 
Products 테이블에서 ProductId가 1인 컬럼들의 ProductName도 추가해서 가져와라
SELECT
  CategoryID, CategoryName, Description,
  (SELECT ProductName FROM Products WHERE ProductID = 1)
FROM Categories;

Price가 평균 이하 인것을 찾아 불러오기
SELECT * FROM Products
WHERE Price < (
  SELECT AVG(Price) FROM Products
);

Products테이블에서 ProductName이 'Chais'인 컬럼의 CategoryID를 찾음. 
그리고 Categories 테이블에 CategoryID가 위에서 찾은 값과 같은 조건을 찾아 불러오기
SELECT
  CategoryID, CategoryName, Description
FROM Categories
WHERE
  CategoryID =
  (SELECT CategoryID FROM Products
  WHERE ProductName = 'Chais');
  
위와 같지만 IN을 사용함
SELECT
  CategoryID, CategoryName, Description
FROM Categories
WHERE
  CategoryID IN
  (SELECT CategoryID FROM Products
  WHERE Price > 50);

비상관 SUBQUERY / ALL, ANY

구해진 모든것들 보다 큰 것을 찾아 불러오기
SELECT * FROM Products
WHERE Price > ALL (
  SELECT Price FROM Products
  WHERE CategoryID = 2
);

구해진 모든것들 중 하나라도 같은걸 불러오기
SELECT
  CategoryID, CategoryName, Description
FROM Categories
WHERE
  CategoryID = ANY
  (SELECT CategoryID FROM Products
  WHERE Price > 50);
profile
개발공부 기록

0개의 댓글