Это должно работать:
Project
У меня есть эта реляционная база данных с 3 таблицами:
Таблица участников
id member
1 Tina
2 John
3 Ellis
4 Dave
id name год 1 лето 2014 2 весна 2015 3 зима 2016 s Таблица
id members_id project_id
1 1 2
2 1 3
3 2 1
4 2 3
5 3 1
6 4 2
7 4 1
Таблица подписчиков
member name
Tina winter
John winter
Ellis summer
Dave spring
Я ищу запрос MYSQL, который выведет на каждого участника последний проект, на который они подписались. Таким образом, запрос даст следующий результат:
SELECT members.member, projects.name
FROM members
JOIN subscribers ON members.id = subscribers.members_id
JOIN projects ON projects.id = subscribers.projects_id
У меня есть этот запрос
SELECT `members`.`member`, `projects`.`name`
FROM `members`
JOIN ( SELECT `members_id` , MAX(`project_id`) AS `project_id`
FROM `subscribers` GROUP BY subscribers.`members_id`) AS `latest`
ON `members`.`id` = `latest`.`members_id`
JOIN `projects` ON `projects`.`id` = `latest`.`project_id`
ORDER BY `members`.`id`;
Но это дает мне 7 строк с членами и их названиями проектов. Я хочу, чтобы только 4 участника с их последним именем проекта, как упомянуто выше.
Что мне не хватает?