2017-12-20 3 views
0

첫 번째 테이블에서 고유 한 행을 비교하고 찾고자하는 두 개의 데이터 테이블이 있다고 가정합니다. 왼쪽 결합이있는 데이터 세트를 비교하지만 Null이 결과에 영향을주지 않도록 방지

두 테이블

는 동일한 구조를 공유 :

product_id mediumint(9) PRIMARY KEY 
sku varchar(20) DEFAULT '' 
title text DEFAULT '' 

table_one 샘플 데이터 :

product_id sku  title 
111  SKU-111 Fizzy Sweets 
222  SKU-222 Fizzy Pop 
225  225-SKU NULL 

table_two 샘플 데이터 I가에서 고유 행을 찾으려면 다음 쿼리를 사용

product_id sku  title 
111  SKU-111 Sweets 
222  SKU-222 Fizzy Pop 
225  225-SKU NULL 

첫 번째 표 :

다음과 같은 결과 제공 17,451,515,
SELECT a.product_id, a.sku, a.title FROM table_one a LEFT JOIN table_two b ON a.product_id = b.product_id AND a.sku = b.sku AND a.title = b.title WHERE b.sku IS NULL; 

: PRODUCT_ID SKU 제목 111 SKU-111 탄산 과자 (225) 225-SKU NULL을

대신 내가 될 것이라고 원하는 것을

:

product_id sku  title 
111  SKU-111 Fizzy Sweets 

제안?

답변

1

또한 a.title IS NOT NULL을 확인해야합니다.

SELECT a.product_id, a.sku, a.title, b.title as t2 
FROM table_one a 
LEFT JOIN table_two b ON (
    a.product_id = b.product_id 
    AND a.sku = b.sku AND a.title = b.title 
) 
WHERE b.title IS NULL 
AND a.title IS NOT NULL 

SQL 바이올린 http://sqlfiddle.com/#!9/2a496a/6

+0

브라보. 고맙습니다. –

관련 문제