:< [프로그래머스 SQL] 조건에 맞는 개발자 찾기

kiki·2024년 2월 26일
0

프로그래머스

목록 보기
72/78

푸념글이니,,, 참고하지 않으시는 걸 추천드립니다..

링크

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

코드

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS D
WHERE 1=1
AND EXISTS(SELECT 1 
       FROM SKILLCODES S
       WHERE NAME IN ('Python','C#')
       AND S.CODE & D.SKILL_CODE = S.CODE)
ORDER BY ID;

비트 연산을 이용했다.
그리고 exists를 사용한다!
exists를 여기서 처음봤는데, 너무 헷갈린다.
S.CODE & D.SKILL_CODE = S.CODE와 같이 사용하면 모든 S.CODE와 D.SKILL_CODE에 대해 조합(Combination)으로 실행되는 건가??
나중에 한 번 더 보자!!!!

그리고 저 비트 연산을 이용한 덧셈 여부는 2의 제곱의 합에서만 적용되는 건지도 궁금하다.

  • 2의 제곱이어야 1의 위치가 겹치지 않기 때문에 가능한듯.
  • ex) 35 & 16 != 16
    • 오! bin으로 변환하지 않고 int를 and(&) 연산해도 비트 연산이 되네??

궁금증 +1

SELECT * FROM customers 
WHERE EXISTS (
  SELECT * 
  FROM orders 
  WHERE orders.c_id = customers.c_id
);

출처: Inpa Dev 👨‍💻:티스토리
이건 exists 찾아보다가 본 코드인데, 저기서 orders.c_id = customers.c_id도 그럼 모든 조합에 대해 확인하고 맞는 orders 데이터에 대해 customers에서 조회????이게 뭔소리야
그니까 모든 조합에 대해 확인하고 저 조건에 맞는 c_id를 갖는 데이터만을 customers에서 조회하는건가??

0개의 댓글