Необходимо составить sql запрос , в одно таблице указаны только наименования компаний, во второй указаны связи между этими компаниями

Есть таблица (table1) в которой указаны id компании и ее название: id, name Есть вторая таблица (table2) в которой указаны связи между этими компаниями (id главной компании и id дочерних компаний): left_id, right_id

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

name (где id = left_id, название главное компании) и name2 (где id = right_id, название ее дочерних компаний)

CREATE TABLE company
(
ID INT,
Name VARCHAR(50)
);
 
INSERT INTO company ( ID, Name ) 
VALUES (1, 'Компания1');
INSERT INTO company ( ID, Name ) 
VALUES (2, 'Компания2');
INSERT INTO company ( ID, Name ) 
VALUES (3, 'Компания3');
INSERT INTO company ( ID, Name ) 
VALUES (4, 'Компания4');
INSERT INTO company ( ID, Name ) 
VALUES (5, 'Компания5');
INSERT INTO company ( ID, Name ) 
VALUES (6, 'Компания6');
INSERT INTO company ( ID, Name ) 
VALUES (7, 'Компания7');
INSERT INTO company ( ID, Name ) 
VALUES (8, 'Компания8');
INSERT INTO company ( ID, Name ) 
VALUES (9, 'Компания9'); 


CREATE TABLE link
(
left_ID INT,
right_ID INT
);
 
INSERT INTO link ( left_ID, right_ID ) 
VALUES (1, 7);
INSERT INTO link ( left_ID, right_ID ) 
VALUES (2, 4);
INSERT INTO link ( left_ID, right_ID ) 
VALUES (6, 6);
INSERT INTO link ( left_ID, right_ID ) 
VALUES (2, 8);
INSERT INTO link ( left_ID, right_ID ) 
VALUES (9, 9);
INSERT INTO link ( left_ID, right_ID ) 
VALUES (3, 5);

В результате должен получится ответ c двумя столбцами и данными в них:

Компания1-Компания7
Компания2-Компания4
Компания6-Компания6
Компания2-Компания8
Компания9-Компания9
Компания3-Компания5

Ответы (1 шт):

Автор решения: Akina

Компании независимы, следовательно, для "расшифровки" двух полей нужно две копии таблицы компаний:

SELECT c1.name, c2.name
FROM link
JOIN company c1 ON link.left_id = c1.id
JOIN company c2 ON link.right_id = c2.id;

Fiddle (для MySQL - в Oracle сам запрос будет работать, а вот оптимизированные INSERT - нет): https://dbfiddle.uk/iCCilNSn

→ Ссылка