Member 11856456 Ответов: 1

Как найти совпадения для обновления в SQL, когда inner join или join говорят, что совпадений нет?


Я работаю с SSDI, выпущенным в 2013 году, и еще одной записью смерти. Однако, пытаясь увидеть, сколько записей соответствует SSN, я получаю нулевые результаты. Вот код, который я использую:

select allcalSSNs.Last_name,allcalSSNs.First_name,allcalSSNs.ssn from ssdm JOIN allcalSSNs ON allcalSSNs.SSN = ssdm.ssn 


Я даже пробовал sub select, когда также возвращал нулевые результаты.

Я никогда раньше не сталкивался с этой проблемой ни с одним столом, на котором я это пробовал.

существует приблизительно 9 000 000 записей в allcalSSNs и около 91 000 000 в SSDI.

Я действительно мог бы использовать некоторые рекомендации по этому поводу, так как знаю, что есть некоторые примеры, которые должны быть в обоих случаях.

Что я уже пробовал:

Уже говорилось в приведенном выше предложении: как sub select, так и метод inner join/join.

1 Ответов

Рейтинг:
10

OriginalGriff

Если я настрою тривиальные таблицы данных в соответствии с вашим запросом:

CREATE TABLE [dbo].[allcalSSNs](
	[ssn] [int] NOT NULL,
	[Last_name] [nchar](10) NOT NULL,
	[First_Name] [nchar](10) NOT NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[ssdm](
	[ssn] [int] NOT NULL
) ON [PRIMARY]

INSERT [dbo].[allcalSSNs] ([ssn], [Last_name], [First_Name]) VALUES (2, N'2222      ', N'222222    ')
INSERT [dbo].[allcalSSNs] ([ssn], [Last_name], [First_Name]) VALUES (4, N'4444      ', N'444444    ')
INSERT [dbo].[ssdm] ([ssn]) VALUES (1)
INSERT [dbo].[ssdm] ([ssn]) VALUES (2)
INSERT [dbo].[ssdm] ([ssn]) VALUES (3)
И я выполняю ваш запрос:
select allcalSSNs.Last_name,allcalSSNs.First_name,allcalSSNs.ssn from ssdm JOIN allcalSSNs ON allcalSSNs.SSN = ssdm.ssn
Я получаю то, что ожидаю: одну строку данных:
Last_name   First_name  ssn
2222        222222      2
Таким образом, если ваш запрос isnl;t возвращает dtaa при запуске против вашей живой БД, то происходит одна из трех вещей:
1) это не тот запрос, который вы выполняете.
2) Вы запускаете его против неправильной БД
3) данные в вашей БД не такие, как вы ожидали.

Мы не можем вам в этом помочь: у нас вообще нет доступа к вашей базе данных.


Member 11856456

Эй, Грифф, если я индивидуально поищу социальное в каждом столе, то смогу его найти. Возможно ли, что наличие сходной, но не одинаковой структуры таблицы может влиять на эти результаты?

allcalssns:
Фамилия имя Middle_name Month_of_death Day_of_death Year_of_death County_of_death секс ССН Month_of_birth Day_of_birth Year_of_birth Place_of_birth гонки Death_certificate_number Cause_of_death суффикс Place_of_death State_of_death


SSdm:
Последний ССН имени суффикс имени отчеству проверка или доказательство код месяц день смерти смерти Смерти Год рождения, месяц рождения, Год рождения государственного или код страны места жительства почтовый индекс последнего места жительства почтовый индекс единовременная выплата State_of_death State_of_birth County_of_death секс

Кроме того, когда я вырезаю и вставляю в excel, кажется, что некоторые из моих значений столбцов выбрасываются во вторую строку. Не уверен, что это что-то значит или excel просто делает это.

Richard Deeming

Похоже, что в некоторых ваших колонках есть непечатные символы. Чтобы соединение работало, значения столбцов должны быть точно такими же. (Конечные пробелы обычно игнорируются, но символы возврата каретки и перевода строки-нет.)

Member 11856456

Спасибо, Ричард, я извлек код для удаления скрытых специальных символов и удаления разрывов строк, и угадайте, что? Это сработало!!!! Спасибо за идею, я подумал, что может быть что-то еще происходит.