Объединение полей набора данных с отсутствующими значениями в нескольких полях

У меня есть два набора данных, назовем их набором данных A и набором данных B.

Набор данных А выглядит следующим образом:

Наименование фирмы Бизнес-код Описание деятельности Пример А 123 Пример Б 456 Некоторое описание Пример С Другое описание Пример D

Набор данных B выглядит следующим образом:

Бизнес-код Описание деятельности 123 Описание 456 Некоторое описание 789 Другое описание

Мой вопрос: как мне присоединиться к таблицам, чтобы в наборе данных A были заполнены все нулевые значения? Будет ли это простым внутренним соединением, например:

Select *
From Dataset A
JOIN Dataset B
ON Dataset A.Business Code = Dataset B.Business Code

Будет ли это заполнять нулевые значения в бизнес-коде и бизнес-описании набора данных A? Или мне также придется выполнить другое соединение, например:

Select *
From Dataset A
JOIN Dataset B
ON Dataset A.Business Description = Dataset B.Business Description

для заполнения набора данных А? Я довольно новичок в SQL, и раньше я не сталкивался с чем-то подобным, и мне было интересно, может ли кто-нибудь помочь мне понять, как это будет сделано.

Есть ли случаи, когда и Business Code, и Business Description оба являются NULL, или всегда хотя бы 1 из них заполнен?

Ergis 18.12.2020 17:39

О, хороший улов! Да, есть несколько случаев, когда оба значения равны NULL. Извините за это, я добавлю это в таблицу!

KoalaKey 18.12.2020 17:41

поделитесь своим выходом, а также

Zaynul Abadin Tuhin 18.12.2020 17:44
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот запрос обрабатывает случаи, когда только 1 из столбцов (Business Code и Business Description) имеет значение NULL и предполагает, что Business Name является УНИКАЛЬНЫМ.

UPDATE DatasetA A
JOIN (SELECT
    A.BusinessName,
    B.BusinessCode,
    B.BusinessDescription
FROM DatasetA A
JOIN Dataset B ON B.BusinessCode = A.BusinessCode
WHERE A.BusinessDescription IS NULL
UNION ALL
SELECT
    A.BusinessName,
    B.BusinessCode,
    B.BusinessDescription
FROM DatasetA A
JOIN Dataset B ON B.BusinessDescription = A.BusinessDescription
WHERE A.BusinessCode IS NULL) t ON A.BusinessName = t.BusinessName
SET 
    A.BusinessCode = t.BusinessCode,
    A.BusinessDescription = t.BusinessDescription

Это потрясающе, Спасибо! Он делает именно то, что я искал!

KoalaKey 18.12.2020 17:58

Другие вопросы по теме