Объединение SQL по уникальному идентификатору

#sql #sql-server #postgresql

#sql #sql-сервер #postgresql

Вопрос:

введите описание изображения здесь

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

Может кто-нибудь мне помочь, пожалуйста?

Комментарии:

1. Пожалуйста, помечайте только используемую вами базу данных. SQL Server или Postgres?

2. Можете ли вы поместить SQL, который вы пробовали? Похоже, что простое внутреннее соединение должно работать.

Ответ №1:

Используйте a cross join для генерации строк, затем a left join :

 select c.country, t2.product_id, t1.cost
from (select distinct country from table1) c cross join
     table2 t2 left join
     table1 t1
     on t1.country = c.country and t1.product_id = t2.product_id
order by c.country, t2.product_id;
  

Ответ №2:

Попробуйте это, чтобы получить требуемый результат:

 Select t1.counry, t1.productId, t2.cost
From table_1 t1
cross join table_2 t2