반응형
지금까지 이것을 알아낼 수없는 것 같습니다. 두 테이블을 조인하고 테이블 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
반응형
'MySql' 카테고리의 다른 글
MySQL에서 InnoDB를 언제 사용하도록 선택해야합니까? (0) | 2021.02.08 |
---|---|
MySQL은 n 일 전 날짜를 타임 스탬프로 가져옵니다. (0) | 2021.02.08 |
MySQL 백업을 사용하여 information_schema 데이터베이스를 복원하는 방법 (0) | 2021.02.08 |
MySQL column data returned as comma delimited list (0) | 2021.02.08 |
MySQL에서 줄 바꿈 및 캐리지 리턴 (\ r \ n) 찾기 (0) | 2021.02.08 |
댓글