inblog logo
|
silver
    SQL문제풀기

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

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

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/276035

    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

    RSS·Powered by Inblog