У меня есть две таблицы Tour и Schedule, таблица Schedule содержит поле dt для даты в ней, это может быть будущая дата или прошедшая дата. И у каждого тура тоже есть рейтинг.
Я хочу найти все заказы туров по s.dt и t.rating. Я пишу некоторый сырой SQL-запрос, но я хочу преобразовать его в sequelize.
необработанный запрос: -
select t.tour_id,
IF(s.dt >= DATE_ADD(NOW(), INTERVAL 1 DAY), "true", "flase")
hasSchedule,
IFNULL(t.avg_rating, 0) rating
FROM Tour t LEFT JOIN Schedule s ON t.tour_id = s.tour_id
WHERE t.progress = 100 AND tour_activation = 'true'
GROUP BY t.tour_id order by hasSchedule DESC, rating DESC;
То, что я пробовал, это запрос Sequelize: -
Tour.findAll({
where: {
visible: 'true',
tour_activation: 'true'
// '$Schedules.dt$': { $gte: (new Date()) }
},
order: [ [Schedule.associations.dt, 'avg_rating', 'DESC'] ],
include: [
{
model: Schedule
/* where: {
dt: {
$gte: (new Date())
},
booked: 'false'
}*/
}
],
limit,
offset
}).then((data) => {}
Но это не работает. Помоги мне в этом.