qcc 다시 정리

모서아·2025년 1월 9일

상관서브쿼리 박치기공룡 두가자 ~ ~~

SELECT 
     c.Name AS CityName,
     co.Name AS CountryName,
     co.Continent,
     c.Population
 FROM 
     city c
 JOIN 
     country co ON c.CountryCode = co.Code
 WHERE 
     c.Population = (       ------- 인구수 = 같은 대륙끼리 가장 많으 인구수 
         SELECT MAX(c2.Population)    ------- 가장 많은 인구수 
         FROM city c2
         JOIN country co2 ON c2.CountryCode = co2.Code    
         WHERE co2.Continent = co.Continent   -- 같은 대륙끼리 
     )
 ORDER BY 
     c.Population DESC ;
  • 이 코드에서 상관서브쿼리에서 where 절에 있는 c.Population = 에서 = 얘는 같은 대륙끼리 가장 많은 인구수를 구했을 때 값이 하나만 나오기때문에 그 나온 = 을 쓰는 것이고 만약 상관서브쿼리에서 내가 구할려는 값이 여러개다! 하면 in 을 쓸 수 있다
  • 상관서브쿼리는 저 서브쿼리에서 끝나는게 아니라 밖에 서도 영향을 주기 때문 즉, 저 안에서의 조건이 끝이 아닌 매 행마다 조건을 부여하기 때문에 상관서브쿼리를 쓴다

결론 : 코드카타 열심히 풀고 상관서브쿼리 써야할 때가 온다면 튜터님한테 ❤️
감사합니다 튜터님 그리고 사랑합니다 .. 🙆🏻‍♀️

0개의 댓글