-1

flat_table から 2 つのテーブル client_data client_contact にデータを挿入する必要があります。

flat_table
    f_name
    l_name
    client_id
    phone
    address

client_data
    id AI
    f_name
    l_name
    ...
    ... 

client_contact
    client_id
    phone
    address
    ...
    ...

どうにかして mysql_last_id を使おうと思っていたのですが、どこから始めればいいのかもわかりません。

このような質問は他にもありますが、私の質問には答えていません。

4

1 に答える 1

1
  1. f_name2 つのクライアントが同じand を共有しないと仮定するとl_name:

    INSERT INTO client_data (f_name, l_name)
      SELECT DISTINCT f_name, l_name
      FROM   flat_table;
    
    INSERT INTO client_contact (client_id, phone, address)
      SELECT d.id, f.phone, f.address
      FROM   flat_table f JOIN client_data d USING (f_name, l_name);
    
  2. flat_tableのすべてのレコードが異なるクライアントに対応すると仮定します。

    CREATE TEMPORARY TABLE flat_table2 (
      id SERIAL
    ) SELECT * FROM flat_table;
    
    INSERT INTO client_data (id, f_name, l_name)
      SELECT DISTINCT id, f_name, l_name
      FROM   flat_table2;
    
    INSERT INTO client_contact (client_id, phone, address)
      SELECT id, phone, address
      FROM   flat_table2;
    
    DROP TEMPORARY TABLE flat_table2;
    
  3. 異なるクライアントが同じものf_nameを共有しているが、すべてのレコードが一意のクライアントl_nameに対応しているわけではないflat_table場合、どのレコードがどのクライアントに対応しているかを特定する方法を見つける必要があります。

于 2012-12-26T18:51:40.353 に答える