Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SequelizeJS - maWiele do maWiele na tym samym stole z dołączonym stołem

Ponieważ to, co próbujesz zrobić, to samoskojarzenie, wystarczy wywołać hasMany tylko raz, co utworzy tabelę połączeń

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

Który utworzy tabelę 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;

Aby znaleźć użytkowników i ich kontakty, możesz wykonać:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INDIE, STD Code Finder Script w PHP, MYSQL, JQUERY

  2. Łączenie wyników zapytań wybierających bez użycia operatorów zestawów (UNION)

  3. Porównanie dwóch tablic z różnymi nazwami kluczy

  4. MySQL - Nie można dodać lub zaktualizować wiersza podrzędnego:ograniczenie klucza obcego nie powiodło się

  5. Błąd PHP, MySQL:liczba kolumn nie odpowiada liczbie wartości w wierszu 1