Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pilih dari sekuel hubungan banyak-ke-banyak

Sepertinya Anda tidak mendefinisikan hubungan banyak-ke-banyak antara makanan dan bahan-bahan. Singkatnya, Anda perlu menambahkan sesuatu seperti ini ke model Anda:

Model makanan:

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

Model bahan:

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

Kemudian, saat Anda ingin membuat kueri, Anda tidak menyertakan model "melalui", tetapi model lain dalam relasi. Dalam kasus Anda:

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

Sequelize akan melakukan bergabung untuk Anda. Perhatikan bahwa jika Anda memberikan alias pada hubungan Anda, seperti:

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

Anda perlu menambahkan alias itu di sertakan Anda:

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. Benar-benar membutuhkan kumpulan koneksi db untuk rel unicorn?

  2. Konfigurasi SSL khusus lingkungan di file .env Laravel

  3. Memulihkan SQL dari beberapa file SQL

  4. Menyembunyikan Kredensial MySQL di Aplikasi

  5. Panggilan UPSERT standar SQL