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. ZendFrameworkを使用して複数のストアドプロシージャを呼び出す

    2. TransactionScopeオブジェクトは、MySqlConnector for .NETを使用して完全にサポートされていますか?

    3. sqliteでROW_NUMBERを使用する方法

    4. PHPMySQLの検索と関連性による順序付け