2016-08-07 4 views
0

Я пытаюсь получить следующий запрос в книжной полке, любые идеи? (Этот запрос работает и возвращает нужный результат)Вложенный запрос Bookshelf

SELECT "restaurants".*, "meals".*, (select count(*) from "public"."visitors" as "visitors" where "visitors"."meal_id" = "meals"."id") as "visitorsMealsCount" FROM "public"."restaurants" as "restaurants" inner join "public"."meals" as "meals" ON "meals"."restaurant_id" = "restaurants"."id" WHERE "restaurants"."id" = '123' 

Еще один вопрос, после того, как я использую belongsTo и hasMany (например) я ожидал, что возвращение объект будет похож на тот

restaurants (obj) 
    meals (obj) 
    visitorsMealsCount (attribute) 

ответ

0

для меня ваш SQL-оператор не соответствует концепции инструмента ORM, например Bookshelf - он не возвращает ресторанов и питание, а отличную смесь.

Что касается вашего второго вопроса: как насчет использования new Restaurant({id: '123'}).fetch({ withRelated: ['meals']})?

visitorsMealsCount: В documentation I see

adminAccounts: function() { 
    return this.belongsToMany(Account).query({where: {access: 'admin'}}); 
}, 

так возможно

visitorsMealsCount: function() { 
    return this.belongsToMany(Visitor).count(); 
} 

работает? (Я не пробовал.)

 Смежные вопросы

  • Нет связанных вопросов^_^