Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn từ phần tiếp theo mối quan hệ nhiều đến nhiều

Có vẻ như bạn không xác định được mối liên hệ giữa thực phẩm và nguyên liệu. Tóm lại, bạn cần thêm một số thứ như thế này vào mô hình của mình:

Mô hình thực phẩm:

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

Mô hình thành phần:

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

Sau đó, khi bạn muốn truy vấn, bạn không bao gồm mô hình "thông qua" mà là mô hình khác trong mối quan hệ. Trong trường hợp của bạn:

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

Sequelize sẽ thực hiện việc tham gia cho bạn. Lưu ý rằng nếu bạn đặt bí danh cho mối quan hệ của mình, chẳng hạn như:

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

Bạn cần thêm bí danh đó vào bao gồm:

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. Nhận giá trị được chèn cuối cùng trong Yii

  2. MySQL:Làm thế nào để thêm một cột nếu nó chưa tồn tại?

  3. Kết hợp nhiều hàng thành một MySQL Join

  4. Sự khác biệt giữa mysqli và mysql?

  5. Thêm hàng vào mysql từ các trường biểu mẫu jquery động