2016-10-27 5 views
0

Мой sequelize запрос всегда возвращает 0 результатов, но когда я копировать/вставить точно такой же запрос в PSQL он прекрасно работает, возвращая правильные строки точно так, как ожидалосьSequelize сырье запрос: Действительно SQL-запрос ничего не возвращает

return sequelize.query(
"SELECT * FROM orders" + 
" INNER JOIN sizes ON orders.sizeid = sizes.sizeid" + 
" INNER JOIN types ON sizes.typeid = types.typeid" + 
" INNER JOIN items ON types.itemid = items.itemid" + 
" WHERE orders.fbid = :fbid AND pickuptime >= :today" + 
" ORDER BY orders.pickuptime ASC", 
{ replacements: {fbid, today}, type: sequelize.QueryTypes.SELECT } 

);

fbid представляет собой целое число & сегодня является строкой формы «гггг-мм-дд»
Если я уронить «сегодня» состояние, я получаю строки, возвращаемые

ли sequelize спасаясь мою строку даты?

+0

Вы попробуйте запустить сгенерированный 'select' непосредственно в базу данных (например, с помощью командной строки)? Я думаю, что вам не хватает символа одной кавычки вокруг ': today'. – FDavidov

+0

Кстати, если вы знаете значение 'today', почему бы вам не развернуть его напрямую как часть строки вместо использования механизма привязки? – FDavidov

+0

К сожалению, значение: сегодня не является постоянным, а окружающее его одинарными кавычками вызывает ошибку при разборе сиквелиза. – Potrimpo

ответ

0

Если вы определили именованный параметр подобного fbid=:fbid в сценарии SQL, вы должны передать объект {fbid: 'fbid_value'},

или, если вы определили неназванные параметры fbid=?, вы должны передать массив ['fbid_value'].

Вот Документы http://docs.sequelizejs.com/en/latest/api/sequelize/#querysql-options-promise

пытается передать объект на замену:

return sequelize.query(
"SELECT * FROM orders" + 
" INNER JOIN sizes ON orders.sizeid = sizes.sizeid" + 
" INNER JOIN types ON sizes.typeid = types.typeid" + 
" INNER JOIN items ON types.itemid = items.itemid" + 
" WHERE orders.fbid = :fbid AND pickuptime >= :today" + 
" ORDER BY orders.pickuptime ASC", 
{ replacements: {fbid: 'fbid_value', today: 'today_value'}, type: sequelize.QueryTypes.SELECT } 
); 
Смежные вопросы