Необходимо составить 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 шт):
Компании независимы, следовательно, для "расшифровки" двух полей нужно две копии таблицы компаний:
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