Я хочу выбрать данные из таблицы A, которая не соответствует следующему запросу. Другими словами, я хочу все из таблицы A, за исключением следующих записей. Я предполагаю, что он левый, но я получаю намного больше матчей, чем ожидалось.SQL Left Outer Join vs Inner Join Не равен
SELECT distinct
a.Address_Direction,
a.Address_Extension,
a.Address_Number,
a.Address_Root,
a. PHY_ADDR1,
b.PHY_ADDR1
FROM [RD_GeoCode].[dbo].[PA_Stg_Test2] AS a
inner JOIN [RD_GeoCode].[dbo].[rg_ApplicationData_AllForms_20160401_address] AS b ON
B.address_direction = a.address_direction
and B.address_root = a.address_root
and B.address_number = a.address_number
and B.Address_Extension = a.Address_Extension
and b.PHY_ZIPCD = a.PHY_ZIPCD
Чтобы добавить к этому: убедитесь, что выбранный «AnyField» не может быть пустым, если есть совпадение; обычно путем выбора поля первичного ключа или другого столбца, определенного как NOT NULL. – Uueerdo
У меня есть 293K строк в таблице A, 7 миллионов в таблице B. Внутреннее соединение соответствует 233k. Но этот поиск привел к более чем 300 тыс. Я просто хочу посмотреть оставшиеся 60 тыс. – ObiWanCannoli
Поле, которое вы используете из таблицы B, должно иметь нулевые значения. См. Мой обновленный ответ. Если этот столбец в B не имеет нулей, невозможно получить больше, чем 60k, которые вы после. –