SELECT *
FROM `users`
LEFT JOIN `news` ON (`users`.`user_name` = `news`.`user_name`)
ORDER BY `user_points` DESC
HAVING (`news`.`news_date` = MAX(`news`.`news_date`))
Получаю ошибку синтаксиса, в чем может быть проблема? Заранее огромное спасибо!
SELECT *
FROM `users`
LEFT JOIN `news` ON (`users`.`user_name` = `news`.`user_name`)
ORDER BY `user_points` DESC
HAVING (`news`.`news_date` = MAX(`news`.`news_date`))
users
user_name user_points
news
news_name news_date user_name
SELECT n.news_name, n.news_date, u.user_name, u.user_points
FROM user u
RIGHT JOIN (SELECT news_name, news_date, user_name
FROM news
WHERE (news_date, user_name)
IN (SELECT MAX(news_date) news_date, user_name
FROM news GROUP BY user_name) ) n
ON u.user_name = n.user_name
ORDER BY u.user_points
SELECT n.news_name, n.news_date, u.user_name, u.user_points
FROM user u
LEFT JOIN (SELECT news_name, MAX(news_date) AS news_date, user_name
FROM news
GROUP BY user_name ) n
ON u.user_name = n.user_name
ORDER BY u.user_points