2015-11-10 2 views
-1

У меня есть 2 таблицы T1.T1badge в таблице 1 может совпадать с T2.OldBadge или T2.New_Badge из таблицы2 или T1.T1badge может не совпадать ни с одним из полей в T2, которые нуждаются в тех, которые не совпадают ни с Поле в таблице2.SQL Query Один для многих не соответствует

Это то, что у меня есть, но не работает, предоставляет записи нулевого значения.

SELECT T1.T1USERID, T1.T1USER, T1.T1badge, T2.CC INTO NewTable_NoCC 
FROM T1, T2 
WHERE (((T2.[NEW_ID])=[T1].[T1badge])) OR (((T2.OldBadge)=[T1].[T1badge])) 
AND (T2.CC IS NULL); 
+0

Я должен указать, что использую SQL в Access – Roxie

+0

Посмотрите, как работают левые/правые соединения. Это метод вытягивания всех записей с одной стороны, даже если они не совпадают. – durbnpoisn

+0

Трудно догадаться, каков ваш результат. –

ответ

0

Сначала удалите это, чтобы увидеть, вернули ли данные нужные данные.

ТОЛЬКО использовать левое соединение и проверять на скобки. Трудно проверить запрос доступа.

SELECT T1.T1USERID, T1.T1USER, T1.T1badge, T2.CC 
FROM T1 
LEFT JOIN T2 
     ON (((T2.[NEW_ID])=[T1].[T1badge])) 
      OR (((T2.OldBadge)=[T1].[T1badge])) 
WHERE (T2.CC IS NULL); 
0
SELECT T1.T1USERID, T1.T1USER, T1.T1badge, T2.CC 
INTO NewTable_NoCC 
FROM T1 
     LEFT JOIN T2 ON T1.T1BADGE IN (T2.NEW_ID, T2.OLDBADGE) 
WHERE T2.CC IS NULL 

Соединение слева является ключом к этому запросу.

+0

Спасибо за помощь. Я выяснил, что Left Join был ключом. – Roxie

Смежные вопросы