Связать две таблицы с помощью 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
→ Ссылка