본문 바로가기
MySql

MySQL SELECT * 존재하지 않는 곳

by 베이스 공부 2020. 9. 16.
반응형

이걸로 옳은 길을 가고있는 것 같아요 ... 제 SQL이 최고가 아니니 참아주세요

특정 셀이 다른 테이블에 존재하지 않는 한 테이블에서 모든 것을 선택하기 위해 데이터베이스를 쿼리하려고합니다. 그다지 말이 안되지만이 코드가

SELECT * from employees WHERE NOT EXISTS (SELECT name FROM eotm_dyn)

그래서 기본적으로 직원 목록과 세부 정보가있는 테이블이 하나 있습니다. 그런 다음 이름을 포함하여 다른 세부 정보가있는 다른 테이블입니다. eotm_dyn 테이블에 이름이없는 경우 (즉, 항목이 없음) 정확히 누구인지 또는 정확히 무엇이 누락되었는지 확인하고 싶습니다.

위의 쿼리는 아무것도 반환하지 않지만 20 개의 이름이 누락되어 있다는 것을 알고 있으므로 분명히 올바르게 이해하지 못했습니다.

누구든지 도울 수 있습니까?

 

해결 방법

 

쿼리에서 테이블을 조인하지 않았습니다.

원래 쿼리는 eotm_dyn 에 전혀 레코드가없는 한 항상 아무것도 반환하지 않습니다.이 경우 모든 것을 반환합니다.

이러한 테이블이 employeeID 에서 조인되어야한다고 가정하고 다음을 사용하십시오.

SELECT  *
FROM    employees e
WHERE   NOT EXISTS
        (
        SELECT  null 
        FROM    eotm_dyn d
        WHERE   d.employeeID = e.id
        )

이러한 테이블을 LEFT JOIN 키워드로 조인하고 NULL 을 필터링 할 수 있지만 이는 NOT EXISTS 를 사용하는 것보다 덜 효율적입니다. .

 

참조 페이지 https://stackoverflow.com/questions/915643

 

 

반응형

댓글