У меня есть запрос, который нормально работать с MySQL:Семантическая ошибка, Symfony DQL
SELECT *
FROM td_user u
JOIN td_ranking ranking ON ranking.user_id = u.id
JOIN (
SELECT x.user_id,
MAX(x.id) AS default_id
FROM td_ranking x
GROUP BY x.user_id
) y
ON y.user_id = ranking.user_id
AND y.default_id = ranking.id
я стараюсь, чтобы превратить его в DQL для запуска в Symfony:
$query = $this->_em->createQuery('
SELECT u.*,ranking.*
FROM UserBundle:User u
JOIN UserBundle:Ranking ranking
WITH ranking.user_id = u.id
JOIN (
SELECT x.user_id, MAX(x.id) AS default_id
FROM UserBundle:Ranking x
GROUP BY x.user_id
) y
ON y.user_id = ranking.user_id
AND y.default_id = ranking.id'
);
$results = $query->getResult();
У меня есть эта ошибка:
[Семантическая Ошибка] строка 0, столбец 113 вблизи '(SELECT x.user_id,': Ошибка:. Class '(' не определен
У вас есть идеи, пожалуйста? Благодаря!
Вы не user_id свойства для Ранжирования лица. –
О да ... Но как это сделать? Я стараюсь это, но результат один и тот же: ". ВЫБРАТЬ и *, рейтинг * FROM UserBundle:. Пользователь у РЕГИСТРИРУЙТЕСЬ UserBundle: Ранжирование рейтинг С ranking.user_id = u.id JOIN ( ВЫБОР x.user , MAX (x.id) КАК default_id ОТ UserBundle: Ранжирование х GROUP BY x.user) у ПО y.user = ranking.user И y.default_id = ranking.id» – Tom59
на самом деле, у меня есть OneToMany Связь между пользователем и ранжированием. Многие Ranking могут быть ссылками на пользователя. В моей просьбе я хочу получить последний рейтинг каждого пользователя ... У вас есть идея, пожалуйста? – Tom59