[SQL문제다시풀기] FrontEnd 개발자 찾기

silver's avatar
Feb 15, 2025
[SQL문제다시풀기] FrontEnd 개발자 찾기
Contents
문제MYSQL

문제

MYSQL

내가 작성한 정답

select distinct id, email, first_name, last_name from developers d join skillcodes s on (d.skill_code & s.code) = s.code where s.category = 'Front End' order by id asc
 

전에 작성했던 정답

SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME FROM DEVELOPERS D JOIN SKILLCODES S ON D.SKILL_CODE & S.CODE != 0 WHERE S.CATEGORY = 'Front End' ORDER BY ID ASC;
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS D WHERE EXISTS ( // select 1 : 실제로 어떤 데이터를 선택하는지 중요하지 않고 결과의 행 수만 확인 // 데이터의 내용 필요 없고, 단순히 결과가 존재하는가?만 확인할 때 SELECT 1 FROM SKILLCODES S WHERE S.CATEGORY = 'Front End' // exists를 사용할 때에는 상위쿼리의 컬럼을 참조할 수 있다. AND (D.SKILL_CODE & S.CODE) != 0 ) ORDER BY ID ASC;
 
💡
EXISTS 서브쿼리의 결과가 하나 이상의 행을 반환하는지를 확인. 서브쿼리가 하나라도 결과를 반환하면 TRUE, 그렇지 않으면 FALSE를 반환하여 주로 특정 조건을 만족하는 데이터가 존재하는지를 체크할 때 사용된다.
EXISTS는 상위 쿼리의 컬럼을 참조할 수 있다.
 
Share article

silver