sql >> Database >  >> RDS >> Mysql

Hoe een een-op-veel-relatie op te slaan in de MySQL-database?

U maakt een aparte tabel voor telefoonnummers (d.w.z. een 1:M-relatie).

create table `users` (
  `id` int unsigned not null auto_increment,
  `name` varchar(100) not null,
  primary key(`id`)
);

create table `phone_numbers` (
  `id` int unsigned not null auto_increment,
  `user_id` int unsigned not null,
  `phone_number` varchar(25) not null,
  index pn_user_index(`user_id`),
  foreign key (`user_id`) references users(`id`) on delete cascade,
  primary key(`id`)
);

Nu kunt u op een eenvoudige manier de telefoonnummers van een gebruiker krijgen met een simpele join;

select
  pn.`phone_number`
from
  `users` as u,
  `phone_numbers` as pn
where
  u.`name`='John'
  and
  pn.`user_id`=u.`id`


  1. Hoe u SQL Server-taken migreert van de ene SQL Server-instantie naar de andere?

  2. Fout tijdens het compileren van statische Qt 5.10.0 met PostgreSQL

  3. Een overzicht van Quests Nieuwste databasebewakingsservice - Spotlight Cloud

  4. ODBC-query op MS SQL Server die de eerste 255 tekens alleen retourneert in PHP PDO (FreeTDS)