nodejs sequelize включает сортировку отношений - PullRequest
0 голосов
/ 09 октября 2019

есть две модели, одна - это Мастер лодки, а другая - цена лодки. Я хочу, чтобы все данные лодки с ее ценой и заказом были по убыванию цены судна, запрос не работает, как ожидалось, его данные сортировки внутри моего отношения, а также показан результат:отсортировано, но не забирает лодку с самой высокой ценой среди всех лодок

db.BoatMaster.findAndCountAll({
    distinct: true,
    limit:request.params.pagesize,
    offset:offsetpage,
    attributes:[
        'id',
        'name',
        'saleprice','length','cabins','year','berths','createdAt','updatedAt'
    ],
    include:[
        "boat_price",

    ],
    order:[
        ['boat_price','price','DESC']
    ],
})

, и вот вывод запроса

SELECT 
  "BoatMaster".*, 
  "boat_price"."id" AS "boat_price.id", 
  "boat_price"."price" AS "boat_price.price", 
  "boat_price"."boatId" AS "boat_price.boatId", 
  "boat_price"."currency" AS "boat_price.currency", 
  "boat_price"."datefrom" AS "boat_price.datefrom", 
  "boat_price"."dateto" AS "boat_price.dateto" 
FROM 
  (
    SELECT 
      "BoatMaster"."id", 
      "BoatMaster"."name", 
      "BoatMaster"."saleprice", 
      "BoatMaster"."length", 
      "BoatMaster"."cabins", 
      "BoatMaster"."year", 
      "BoatMaster"."berths", 
      "BoatMaster"."createdAt", 
      "BoatMaster"."updatedAt" 
    FROM 
      "BoatMasters" AS "BoatMaster" 
    WHERE 
      (
        SELECT 
          "boatId" 
        FROM 
          "boatprices" AS "boat_price" 
        WHERE 
          (
            "boat_price"."boatId" = "BoatMaster"."id"
          ) 
        LIMIT 
          1
      ) IS NOT NULL 
    LIMIT 
      10 OFFSET 0
  ) AS "BoatMaster" 
  INNER JOIN "boatprices" AS "boat_price" ON "BoatMaster"."id" =     "boat_price"."boatId" 
ORDER BY 
  "boat_price"."price" DESC;

Может кто-нибудь помочь мне разобраться, что я делаю здесь неправильнопотому что данные не сортируются по цене? спасибо заранее

1 Ответ

0 голосов
/ 09 октября 2019

попробуйте это (если правильно):

 include:[
        boat_price,

    ],
    order:[
        [boat_price,'price','DESC']
    ],

или

 include:[
        boat_price,

    ],
    order:[
        ['boat_price.price','DESC']
    ],
...