๐Ÿ“˜ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ž€?

์„œ๋ธŒ์ฟผ๋ฆฌ(Subquery)๋Š”

๐Ÿ‘‰ ์ฟผ๋ฆฌ ์•ˆ์— ํฌํ•จ๋œ ๋˜ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

โœ… ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ํŠน์ง•


๐Ÿ” ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์œ„์น˜์™€ ์šฉ๋„

์œ„์น˜ ์šฉ๋„ ์„ค๋ช…
SELECT ์ปฌ๋Ÿผ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ํŠน์ • ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ๋•Œ
FROM ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ ์‚ฌ์šฉ ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉ
WHERE ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์‚ฌ์šฉ ์–ด๋–ค ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€๋ฅผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ํŒ๋‹จ

๐Ÿ” WHERE์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ ์ž์ฃผ ์“ฐ๋Š” ํ‚ค์›Œ๋“œ

ํ‚ค์›Œ๋“œ ์„ค๋ช… ์˜ˆ์ œ
IN ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์•ˆ์— ์žˆ๋Š” ๊ฐ’์ธ์ง€ ํ™•์ธ WHERE id IN (SELECT id FROM ...)
NOT IN ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์— ์—†๋Š” ๊ฐ’์ธ์ง€ ํ™•์ธ WHERE id NOT IN (SELECT id FROM ...)
EXISTS ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€๋งŒ ํ™•์ธ WHERE EXISTS (SELECT ... WHERE ...)
ANY ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋งŒ์กฑํ•˜๋Š”์ง€ > ANY (SELECT price FROM ...)
ALL ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๋ชจ๋‘์— ๋Œ€ํ•ด ๋งŒ์กฑํ•˜๋Š”์ง€ < ALL (SELECT age FROM ...)

๐Ÿงช ์„œ๋ธŒ์ฟผ๋ฆฌ ์œ„์น˜๋ณ„ ์˜ˆ์ œ

๐Ÿ“Œ WHERE์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ

SELECT name
FROM students
WHERE student_id IN (
  SELECT student_id
  FROM exam_scores
  WHERE score > 90
);

๐Ÿ’ฌ ์‹œํ—˜์—์„œ 90์  ์ด์ƒ ๋ฐ›์€ ํ•™์ƒ๋“ค์˜ ์ด๋ฆ„์„ ์กฐํšŒ


๐Ÿ“Œ SELECT์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ

SELECT name,
       (SELECT MAX(score) FROM exam_scores) AS highest_score
FROM students;