sql >> Databasteknik >  >> RDS >> Mysql

Välj från många-till-många-uppföljare

Det verkar inte som att du definierade många-till-många-associationen mellan mat och ingredienser. Sammanfattningsvis måste du lägga till något sånt här till dina modeller:

Matmodell:

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

Ingrediensmodell:

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

Sedan, när du vill fråga, inkluderar du inte "genom"-modellen, utan den andra modellen i relationen. I ditt fall:

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

Sequelize gör anslutningen åt dig. Observera att om du ger ditt förhållande ett alias, som:

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

Du måste lägga till det aliaset i ditt inkluderar:

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



  1. Skriv ut felsökningsinformation från lagrad procedur i MySQL

  2. Virtualmin:Du har inte tillgång till den här MySQL-databasen efter att ha ändrat lösenord

  3. Anropa ett REST API från en trigger eller lagrad procedur i mysql?

  4. Ändra en postgres containers serverport i Docker Compose