Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете от продължение на връзката много към много

Изглежда, че не сте дефинирали връзката много към много между храната и съставките. В обобщение, трябва да добавите нещо подобно към вашите модели:

Модел на храна:

Food.belongsToMany(Ingredients, { through: Food_ingredients});

Модел на съставките:

Ingredients.belongsToMany(Food, { through: Food_ingredients});

След това, когато искате да направите заявка, вие не включвате "преходния" модел, а другия модел в релацията. Във вашия случай:

Food.findAll({include: [
{
  model: Ingredients
}]}).then(responseWithResult(res)).catch(handleError(res));

Sequelize ще направи присъединяването вместо вас. Имайте предвид, че ако дадете на връзката си псевдоним, като:

Food.belongsToMany(Ingredients, {as 'someAlias', through: Food_ingredients});

Трябва да добавите този псевдоним във вашето включване:

Food.findAll({include: [
{
  model: Ingredients, as 'someAlias'
}]}).then(responseWithResult(res)).catch(handleError(res));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Симулиране на ORDER BY FIELD() на MySQL в Postgresql

  2. MySQL динамична кръстосана заявка:Избиране на дъщерни записи като допълнителни колони

  3. phpMyAdmin SQL грешка Неразпозната ключова дума близо до FIELDS

  4. Има ли добър универсален PHP MySQL HTTP тунел?

  5. ORDER BY datetime прави заявката много бавна