2016-09-14 3 views
1

У меня есть таблица соединений для расписания (недели 1, 2, 3 и т. Д.), Которая соединяет пользователей. Каждую неделю в таблице join есть идентификаторы для двух отдельных пользователей: пользователя A и пользователя B. Но также есть несколько строк за каждую неделю. Так это выглядит следующим образом:Вытягивание нескольких строк из одной таблицы из таблицы JOIN в MySQL

Расписание Таблица:

----------------------------------- 
| week_id | userA_id | userB_id | 
----------------------------------- 
| 1 |  1  | 2  | 
| 1 |  2  | 3  | 
---------------------------------- 

У меня также есть таблица пользователей, которая хранит всю информацию о пользователе, довольно основной материал. Так, например: Таблица

Пользователь:

----------------------------------- 
| id | Name | Nickname | 
----------------------------------- 
| 1 | jason | jay | 
| 2 | billy | bill | 
---------------------------------- 

То, что я хотел бы сделать, это запросить мой график таблицу на основе недели ID, а затем вернуть ряд пользователей для каждой недели. Например, дайте мне всех пользователей с первой недели в серии объектов, например [{UserA.name: jason, UserB.name: billy}, {UserA.name: billy, UserB.name: jane}], и т. д.

У меня есть подозрение, что это будет включать несколько операторов JOIN, но я не могу заставить его работать. Кто-нибудь знает, как структурировать этот оператор MySQL?

ответ

0

Один из вариантов здесь - это просто присоединиться к таблице Schedule дважды к таблице User, по одному соединению для каждого пользователя в отношениях.

SELECT u1.Name, 
     u2.Name 
FROM Schedule s 
INNER JOIN User u1 
    ON s.userA_id = u1.id 
INNER JOIN User u2 
    ON s.userB_id = u2.id 
WHERE s.week_id = 1 
+0

Да, извините, удалил предыдущий комментарий. Моя ошибка. Спасибо, я считаю, что это работает отлично! –

Смежные вопросы