Как написать вложенный оператор select в sequelize?

#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