2013-12-06 4 views
1

Что не так в этом вопросе?MySQL trim (concat ...)

SELECT DISTINCT source, 
       source_description, 
       url 
FROM staging_census 
WHERE Trim(Concat(source, source_description, url)) NOT IN (SELECT 
     Trim(Concat(source, 
source_description, url)) 
                  FROM dim_source); 

Цель состоит в том, чтобы вытащить только те записи, где сочетание Source, Source_Description и URL, который не существует (что верно в моем случае). Однако, если он видит совпадение только в одном столбце, он игнорирует его.

MySQL Newbie ... если есть лучший способ для этого запроса, я был бы признателен.

ответ

2

Попробуйте это:

SELECT DISTINCT Source, Source_Description, URL 
FROM Staging_Census 
WHERE CONCAT(TRIM(Source), TRIM(Source_Description0, TRIM(URL))) NOT IN (SELECT CONCAT(TRIM(Source), TRIM(Source_Description0, TRIM(URL))) FROM DIM_Source); 

ИЛИ

SELECT DISTINCT SC.Source, SC.Source_Description, SC.URL 
FROM Staging_Censusc SC 
LEFT JOIN DIM_Source DS ON (TRIM(SC.Source), TRIM(AC.Source_Description0, TRIM(SC.URL)) = (TRIM(DS.Source), TRIM(DS.Source_Description0, TRIM(DS.URL)) 
WHERE DS.DimsourceId IS NULL