1

現在、テーブルを含む mysql データベースがあり、userphone(id, phone, type,userid)それを 2 つのテーブルに分割したいと考えていphone(id,phone,type)ますuser_phone(id,user_id,phone_id)

これを行っているのは、電話番号を参照する他のものも用意する予定であり、それらはすべて 1 つのテーブルに格納する必要があるためです。company_phone(id,company_id,phone_id)(たとえば、会社と電話番号を結合する結合テーブルも追加します)。

これを行うための良い効率的な方法はありますか?新しいテーブルを追加しましたが、テーブルを作成するための最善の方法がわかりません。

次のようなものを使用して、すべての電話をテーブルに追加userphoneできphoneます

INSERT INTO phone(phone,type) SELECT phone,type FROM userphone;

user_phoneただし、これは各電話の新しいテーブルにエントリを追加しません。

INSERT INTO一度に 2 つの異なるテーブルにアクセスする方法はありますか? (調査から、そうではないことはわかっていますが、これを達成する方法が他にわかりません...)

前もって感謝します!

4

2 に答える 2

2
  1. テーブル user_phone を次のように作成します。

    insert into phone(phone,type,user_id)
    select phone,type,user_id from userphone
    
  2. テーブル user_phone を次のように作成します

    insert into user_phone (user_id,phone_id)
    select user_id,id from phone
    
  3. alter table phone drop column user_id

于 2012-01-26T18:22:30.053 に答える
0

最初:

INSERT INTO phone(phone,type) SELECT phone,type FROM userphone;

2番目:

userPhone から u.USER_ID、p.phone_ID を選択 u INNER JOIN Phone p ON u.phone = p.phone および u.type = p.type

于 2012-01-26T18:16:50.170 に答える