"HoldingQueue"라는 테이블이 있는데 두 행을 두 값과 비교하여 두 행을 모두 비교하고 각 행과 일치하지 않는 행을 반환합니다. 값. 나는 그것이 "1PX1하지 모든 것을 반환해야 할 | - |이 ONLY"Test2를 3PX1 "를 반환MySQL의 두 테이블에서 두 개의 행을 비교하여 음수 결과 만 표시
SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" AND Channel<>"Test";
:
* * * * * * * * * * * *
* ItemCode * Channel *
* * * * * * * * * * * *
* 1PX1 * Test *
* * * * * * * * * * * *
* 2PX1 * Test *
* * * * * * * * * * * *
* 3PX1 * Test2 *
* * * * * * * * * * * *
그리고 쿼리 : 여기에 내용의 예입니다 Test "-"2PX1 | Test "도 반환해야합니다.
아이디어가 있으십니까? 벽에 내 머리를 두드리는 소리.
편집 : 좋아요, OR을 사용하여 작은 데이터 세트로 작업하고 있습니다 ...하지만 방금 문제가 있음을 깨달았습니다. 나는 "ItemCode"와 "Channel"을 여러 항목을 가진 다른 테이블에서 비교하려고 시도하고 있지만, 그 테이블에 여러 항목이 있기 때문에 모든 것이 적어도 한 번은 값 집합의
제 질문은 이보다 더 복잡하다고 생각합니다.
편집 # 2 : ... 알았어요
SELECT Channel, ItemCode FROM HoldingQueue H
WHERE NOT EXISTS
(SELECT * FROM SKUList S
WHERE
H.ItemCode=S.SKU
AND
H.Channel=S.Channel
) GROUP BY H.Channel,H.ItemCode;
나는 두 번째 SKUList 테이블에서 아무것도 일치하지 않는 항목을 원했다. 이것은 그것을했다. 그가 제대로 쿼리 OR
에
잘되기 때문에 세르게이 Kudriavtsev에게 답을 표시합니다, 그것은 작은 샘플과 함께 작동하는 것처럼 보이지만 큰 데이터 세트에서는 작동하지 않습니다. 나는 내 메인 포스트를 업데이트 할 것이다. – rwhit85