У меня проблема с объединением sql соединения с группой и подзапросом для выбора максимального значения.
table1
user_id user_name
1 x
2 t
3 y
4 i
5 o
table2
user_id game_id
1 soccer
2 soccer
2 pool
2 basketball
5 swimming
table3
user_id fans date
1 54805 2018-10-05
2 10005 2018-10-05
2 10023 2018-10-03
3 175 2018-10-05
4 1542 2018-10-05
При выполнении этого запроса, который группирует все game_ids по user_ids, я добился успеха:
SELECT table1.user_id, table1.user_name, group_concat(table2.game_id) as games
FROM (table1
LEFT JOIN table2 on table2.user_id = table1.user_id)
group by table1.user_id
Но при попытке объединить подзапрос, чтобы вернуть номер последнего поклонника:
SELECT table1.user_id, table1.user_name, group_concat(table2.game_id) as games, table3.fans
FROM ((table1
LEFT JOIN table2 on table2.user_id = table1.user_id)
INNER JOIN (SELECT * FROM table3 WHERE MAX(update_time) ORDER BY update_time LIMIT 1) AS fans ON table1.user_id = table3.user_id)
group by table1.user_id
У меня проблема с групповой функцией:
1111 - Неправильное использование групповой функции
Редактировать:
Исправлена проблема # 1111 путем изменения WHERE на HAVING, но мой запрос все еще бесполезен, так как MYSQL сообщает следующее:
Неизвестный столбец 'table3.fans' в 'списке полей'