Связать две таблицы с помощью INNER JOIN и получить на выходе третью таблицу
просьба помочь в решении следующей задачи. Есть две таблицы :
- skill_deals - данные по сделкам
- skill_customers_suppliers - справочник продавцов и покупателей одновременно
В таблице со сделками skill_deals есть идентификаторы:
- customer_id — идентификатор покупателя;
- supplier_id — идентификатор продавца
Необходимо с помощью INNER JOIN связать оба идентификатора с таблицей skill_customers_suppliers, которая является справочником продавцов и покупателей одновременно (поле-идентификатор customers_suppliers_id).
Вид результирующей таблицы:
Написал следующий код :
SELECT c.dt,c.customer_name,s.supplier_name
FROM
( select dt,name as customer_name from skill_deals join skill_customers_suppliers on customer_id =customers_suppliers_id ) c
inner join
( select dt,name as supplier_name from skill_deals join skill_customers_suppliers on supplier_id =customers_suppliers_id ) s
on c.dt=s.dt
но кол-во строк исходной таблицы стало больше (25 вместо 10)
Ответы (2 шт):
Автор решения: Akina
→ Ссылка
SELECT *
FROM skill_deals t0
JOIN skill_customers_suppliers t1 ON t0.customer_id = t1.customers_suppliers_id
JOIN skill_customers_suppliers t2 ON t0.supplier_id = t2.customers_suppliers_id
Автор решения: Artem1s-_-
→ Ссылка
Правильный ответ:
select dt, c.name,s.name from
skill_deals d join skill_customers_suppliers c on
d.customer_id=c.customers_suppliers_id join
skill_customers_suppliers s on
d.supplier_id=s.customers_suppliers_id


