#mysql #node.js #sequelize.js
#mysql #node.js #sequelize.js
Вопрос:
Мой вопрос в том, как писать вложенные операторы select с помощью sequelize.js , вот чего мне нужно достичь:
SELECT * from (SELECT id, time FROM table_name ORDER BY time desc) AS `descTime` GROUP BY `id`;
Я попробовал этот код
User.findAll({
attributes: [[Sequelize.literal('(SELECT id, time FROM table_name ORDER BY time desc)'),
'descTime']],
group: ['id'],
});
но это не сработало
Комментарии:
1. Для этого запроса (1) вам не нужен вложенный запрос и (2) Вы неправильно используете пресловутую нестандартную ГРУППУ обработки MySQL. потому что в вашем
SELECT *
упоминаетсяtime
столбец, который не является ни агрегатной функцией, ни упоминается в вашей ГРУППЕ BY.
Ответ №1:
Вы можете получить то, что, я думаю, вы хотите, с помощью этого запроса. Это немного проще, чем то, что у вас есть в вашем вопросе, и его результирующий набор более предсказуем.
SELECT id, MAX(`time`) `time` FROM table_name GROUP BY id