사용자에 대한 이벤트 정보가 포함 된 테이블이 있습니다. 즉, 각 행에는 ID, 사용자 시작 날짜, 완료 날짜 및 이벤트 번호가 있습니다. 예 :하나의 테이블에서 MySQL 교차 쿼리
행 1 : ID 256 | StartDate 13360500 | 마감일 13390500 | EventNum 3
내가 이벤트 3 & 2를 완료 한 사용자에 대한 모든 행을 교차하도록 노력하고 있어요,하지만 난 내 쿼리 결과가 반환되지 않는 이유를 알아낼 수 없습니다 :
SELECT table_id FROM table
WHERE table_EventNum = 3
AND table_FinishDate > 0
AND table_id IN (SELECT table_id FROM table WHERE table_EventNum = 2);
이 쿼리하지 않고를 서브 쿼리 (나머지는 하단에서 분리 된 라인)는 반드시 null이 아닌 결과를 반환하며, 서브 쿼리는 null이 아닌 결과를 반환합니다 (다시 말하지만). 그러나 어떤 이유로 복합 쿼리는 행을 반환하지 않습니다. 양쪽에있는 표현식이 NULL 인 경우 IN
명령이 NULL을 반환한다는 것을 알고 있지만 두 쿼리 모두 결과를 반환하므로이 문제를 일으키는 원인이 무엇인지 알 수 없습니다.
아이디어가 있으십니까? 감사!
FinishDate와 table_id 대신 table_id 만 선택한다는 차이점이 있습니까? MySQL이 SELECT 액션을 먼저 수행 한 다음 IN (ID) 명령을 실행한다고 생각했습니다. – mgh14
SELECT table_id, FinishDate FROM 테이블 where table_EventNum = 3 및 table_FinishDate> 0 및 table_id IN (SELECT table_id FROM 테이블 WHERE table_EventNum = 2); - 괜찮을거야. 차이는 없어. – Tarik