Не удается найти решение проблемы, связанной с тремя таблицами и операцией соединения - PullRequest
1 голос
/ 08 июля 2019

Итак, я не могу решить следующую проблему. Даны три таблицы: таблицы

Мне нужно написать код, используя объединение, чтобы все пары друзей указывались вместе с их полными именами. Я только знаю, что может потребоваться два соединения, одно из которых является самостоятельным. Я попытался соединить таблицу лиц с таблицей друзей, но в одном столбце было указано имя, а в другом - id, я не знаю, как сделать два последовательных объединения, чтобы каждому имени соответствовало имя друга. Вот информация таблицы:

CREATE TABLE persons (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fullname TEXT,
age INTEGER);



INSERT INTO persons (fullname, age) VALUES ("Bobby McBobbyFace", "12");
INSERT INTO persons (fullname, age) VALUES ("Lucy BoBucie", "25");
INSERT INTO persons (fullname, age) VALUES ("Banana FoFanna", "14");
INSERT INTO persons (fullname, age) VALUES ("Shish Kabob", "20");

CREATE table hobbies (
id INTEGER PRIMARY KEY AUTOINCREMENT,
person_id INTEGER,
name TEXT);

INSERT INTO hobbies (person_id, name) VALUES (1, "drawing");
INSERT INTO hobbies (person_id, name) VALUES (2, "dancing");
INSERT INTO hobbies (person_id, name) VALUES (3, "skating");
INSERT INTO hobbies (person_id, name) VALUES (4, "coding");

CREATE table friends (
id INTEGER PRIMARY KEY AUTOINCREMENT,
person1_id INTEGER,
person2_id INTEGER);

INSERT INTO friends (person1_id, person2_id)
VALUES (1, 4);
INSERT INTO friends (person1_id, person2_id)
VALUES (2, 3);

1 Ответ

0 голосов
/ 08 июля 2019

Вы просто ищете два соединения?

select p1.fullname, p2.fullname
from friends f join
     persons p1
     on f.person1_id = p1.id join
     persons p2
     on f.person2_id = p2.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...