Я хочу составить список учеников, выбирающих других учеников для соседей по комнате. Таким образом, они могут быть разделены на выбирающих и выбранных. Другими словами, это вопрос о том, как объединить две таблицы с отношением «многие ко многим», когда на одну таблицу ссылаются дважды.
Для начала я составил таблицу всех учеников, которых творчески называют "Ученики" ...
Затем я составил таблицу с двумя наборами внешних ключей, ссылающихся на идентификаторы из списка ученика, чтобы обозначить «выбрал» и «выбрал». Я назвал это «Выбор» и связал многих со многими.
Я получаю две таблицы:
- Ученики: Поля: id, имя, фамилия, возраст, пол, класс
- Выбор: поля: id, chooser_fk, choice_fk, choice_priority
Однако я потерпел неудачу, когда попытался сообщить имена как chooser, так и выбранного с помощью SELECT.
Кажется, я не могу продвинуться дальше:
SELECT Pupils.firstname, Pupils.lastname, Choices.choice
FROM Pupils
INNER JOIN Choices
ON Pupils.id=Choices.chooser
WHERE Pupils.sex = 'M';
... но он получает только имя для выбора и только идентификатор выбранного. Я пытался искать, но вещи, которые я нашел, были неуместны или слишком сложны, чтобы я мог их правильно понять. Все еще пытаюсь учиться.
Я бы хотел, чтобы в отчете были имена как для выбора, так и для выбранного рядом. Как мне это сделать?