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

MySQLデータベースに1対多の関係を保存する方法は?

    電話番号用に別のテーブルを作成します(つまり、1:Mの関係)。

    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`)
    );
    

    これで、簡単な方法で、簡単な参加でユーザーの電話番号を取得できます。

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


    1. テーブル名を囲む引用符は正確に何をしますか?

    2. SQLで指定されたレコードの次のレコードを見つける方法は?

    3. 関数を使用してgpsの場所とpostgisの地理的値の間の距離を計算しますか?

    4. SQLServer2019でのスカラーUDFインライン化