sql >> データベース >  >> RDS >> Mysql

SequelizeJS-結合テーブルと同じテーブル上のhasManyからhasMany

    あなたがやろうとしているのは自己関連付けなので、hasManyを1回呼び出すだけで、ジャンクションテーブルが作成されます

    User.hasMany(User, { as: 'Contacts', joinTableName: 'userHasContacts'})
    

    これにより、userHasContactsテーブルが次のように作成されます。

    CREATE TABLE IF NOT EXISTS `userHasContacts` (`userId` INTEGER , `ContactsId` INTEGER , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`userId`,`ContactsId`)) ENGINE=InnoDB;
    

    ユーザーとその連絡先を見つけるには、次のようにします。

    User.find({ where: ..., include: [{model: User, as: 'Contacts'}]})
    



    1. 基本的なSQLクエリ

    2. ウェイトイベントを見つける方法Oracleセッションの履歴

    3. 帆-mysql:ER_NO_DB_ERROR:データベースが選択されていません

    4. codeigniter-データベース:単一の更新クエリで複数のテーブルを更新する方法