Я создаю часть веб-сайта, который управляет посещаемостью пользователя.Выполните два объединения по каждой строке таблицы отдельно?
Присутствуют четыре таблицы: пользователь, посещаемость (ссылка «многие-ко-многим») и событие.
Таблица посещаемости просто хранит идентификаторы userId и eventId и являются ли они присутствующими, отсутствующими, больными или в отпуске.
Я пытаюсь создать запрос mySQL, который покажет каждую пару пользователь-событие, у которой нет записи посещаемости, т.е. они не были отмечены как присутствующие, больные и т. д.
Я попытался использовать INNER JOIN от пользователя к посещению, а затем ПРАВОЕ СОЕДИНЕНИЕ от посещения мероприятия, но это должно выполняться индивидуально для каждого пользователя. Я не уверен, что я направляюсь в правильном направлении или уверен, как сделать повторение запроса в SQL.
Заранее благодарен!
Дополнительная информация:
Таблица Пользователь
+-----+---------+ | id | name | +-----+---------+ | 104 | Matthew | | 102 | Kev | | 101 | Julia | +-----+---------+
посещений
+----+--------+---------+------+ | id | userId | eventId | type | +----+--------+---------+------+ | 16 | 104 | 47 | L | | 20 | 104 | 46 | L | | 21 | 104 | 45 | L | | 22 | 102 | 47 | L | | 23 | 102 | 46 | L | | 24 | 102 | 45 | L | | 28 | 102 | 44 | L | | 25 | 101 | 47 | L | | 26 | 101 | 46 | L | | 27 | 101 | 45 | L | +----+--------+---------+------+
События
+----+------------+ | id | date | +----+------------+ | 43 | 2014-08-01 | | 44 | 2014-08-08 | | 45 | 2014-08-15 | | 46 | 2014-08-22 | | 47 | 2014-08-29 | +----+------------+
Моя попытка:
SELECT * FROM `user`
INNER JOIN attendance ON user.id=userId
RIGHT JOIN event ON attendance.eventId=event.id
WHERE event.date BETWEEN '2014-08-01' AND CURDATE()
Гол
В идеале я хотел бы столик вернулся с USERID и события Id записей, которые не существуют.
+--------+---------+ | userId | eventId | +--------+---------+ | 104 | 43 | | 104 | 44 | | 102 | 43 | | 101 | 43 | | 101 | 44 | +--------+---------+
Опубликуйте свои попытки, структуру таблицы и т. Д.поэтому мы знаем, что вы работаете с –
Это немного помогает? – Martt
Гораздо лучше, приветствия :) –