#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