Как вы определяете записи, включенные в таблицу A, а не в таблицу B - PullRequest
0 голосов
/ 24 июня 2018

У меня есть две таблицы SQL (Azure SqlDB), Таблица A и Таблица B. Каждая таблица совместно использует столбец P_Code. Таблица A имеет 600 записей, а таблица B - 400 соответствий (A.P_Code = B.P_Code).

Мне интересно посмотреть на 200 записей в A, а не в B. Я пробовал следующие два запроса, но ни один из них не возвращает никаких результатов. Куда я иду не так.

Select A.* From 
[Table A]A 
FULL OUTER JOIN
[Table B]B
ON A.P_CODE = B.P_CODE
WHERE B.P_CODE IS NULL

Select A.* From 
[TABLE A] A 
LEFT JOIN
[TABLE B] B
ON A.P_CODE = B.P_CODE
WHERE B.P_CODE IS NULL

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Я просто использовал другой инструмент (Alteryx), чтобы сделать соединение более заметным. Оказывается, моя ссылочная целостность была нарушена, и таблица А содержала 200 дубликатов. Таким образом, возвращенный результат (ноль строк) был на самом деле правильным.

0 голосов
/ 25 июня 2018

Вы можете сделать это с левым соединением

Select A.* from [Table A] A 
left join [Table B] B on A.P_CODE = B.P_CODE
where B.P_CODE IS NULL

Левое объединение дает вам все строки в A независимо от того, есть ли совпадение в B. Таким образом, те, которые имеют нулевой B.P_CODE не в B.,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...