반응형
이걸로 옳은 길을 가고있는 것 같아요 ... 제 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
반응형
'MySql' 카테고리의 다른 글
MySQL 치명적인 오류 : 권한 테이블을 열고 잠글 수 없음 : 테이블 'mysql.host'가 존재하지 않습니다. (0) | 2020.09.16 |
---|---|
MySQL에서 자동 증가 필드를 사용하여 행을 복사하고 동일한 테이블에 삽입하는 방법은 무엇입니까? (0) | 2020.09.16 |
MySQL 'create_date'타임 스탬프 필드의 기본값이 잘못되었습니다. (0) | 2020.09.16 |
MySQL 쿼리에서 타임 스탬프를 날짜로 변환 (0) | 2020.09.16 |
MySQL 오류 1153- 'max_allowed_packet'바이트보다 큰 패킷이 있습니다. (0) | 2020.09.16 |
댓글