본문 바로가기
MySql

MySQL 다른 테이블에 일치하는 열이없는 MySQL 선택 행

by 베이스 공부 2021. 2. 8.
반응형

지금까지 이것을 알아낼 수없는 것 같습니다. 두 테이블을 조인하고 테이블 B에 일치하는 열이없는 테이블 A의 행만 선택하려고합니다. 예를 들어 사용자 테이블과 보낸 테이블이 있다고 가정 해 보겠습니다.

users 테이블에는 id, username
열이 있습니다. sent 테이블에는 id, username 열이 있습니다.

users 에서 username sent 테이블에 존재하지 않는 모든 행을 선택하고 싶습니다. 따라서 tom users 에 있고 sent 에있는 경우 그는 선택되지 않습니다. users 에는 있지만 sent 에는없는 경우 선택됩니다. 나는 이것을 시도했지만 전혀 작동하지 않았습니다.

SELECT pooltest.name,senttest.sentname 
FROM pooltest,senttest 
WHERE pooltest.name != senttest.sentname

 

해결 방법

 

이 SQL을 시도하십시오.

SELECT users.username
FROM  users
LEFT JOIN sent ON sent.username = users.username
WHERE sent.username IS NULL;

내 생각에 더 나은 방법은 다음과 같습니다.

SELECT users.username
FROM  users
LEFT JOIN sent ON sent.id = users.id
WHERE sent.id IS NULL;

두 ID 필드가 모두 인덱싱되므로 (내가 생각했던 기본 키)이 쿼리가 내가 제안한 첫 번째 쿼리보다 더 잘 최적화됩니다.

그러나 내 첫 번째 제안이 귀하에게 더 적합하다는 것을 알 수 있지만 귀하의 응용 프로그램에 대한 요구 사항에 따라 다릅니다.

 

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

 

 

반응형

댓글