sql >> Databáze >  >> RDS >> Mysql

SequelizeJS - hasMany to hasMany na stejném stole se spojovací tabulkou

Protože to, co se snažíte udělat, je vlastní asociace, stačí zavolat hasMany jednou, čímž se vytvoří spojovací tabulka

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

Což vytvoří tabulku userHasContacts jako:

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

Chcete-li najít uživatele a jejich kontakty, můžete:

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



  1. Jak získat další sloupce, které nejsou v klauzuli GROUP BY v oracle select sql?

  2. Statistiky využití indexu SQL Server

  3. Oracle ekvivalent information_schema.tables

  4. MariaDB DEFAULT() Vysvětleno