0

aitisi (id、name1、surname1、father1、birthdate1、name2、surname2、father2、birthdate2... to 5、cost、begins、expires、plan、address、phone、city、zip) があり、surnameX をコピーしたい、nameX、fatherX、birthdateX (X= 1 ~ 5) 列を新しいテーブル メンバー (id、tid、name、surname、father、birthdate) に追加します。ここで、tid は table1.id へのルックアップ キーです。

MySQL で試してみましたが、うまくいかなかったので、最終的に PHP で id を作成しました。

$query_aitisi = "SELECT * FROM aitisi order by id asc";
$aitisi = mysql_query($query_aitisi, $connection) or die(mysql_error());
$row_aitisi = mysql_fetch_assoc($aitisi);
$totalRows_aitisi = mysql_num_rows($aitisi);

do {
  for($i=1; $i<=5; $i++){
    if ($row_aitisi['on_te'.$i]<>'') { 
    $query_copy = "insert into members (symbid, name, surname, father, birthdate) 
    values ('".$row_aitisi[id]."','".$row_aitisi['surname'.$i]."','".$row_aitisi['name'.$i]."','".$row_aitisi['father'.$i]."','".$row_aitisi['birthdate'.$i]."')";
$copy = mysql_query($query_copy, $connection) or die(mysql_error());
    }
  }
} while ($row_aitisi = mysql_fetch_assoc($aitisi));

ただし、将来の使用のために「create table as select」ステートメントの適切な使用法を知りたいです。誰か?ありがとう!

4

1 に答える 1

0

次のクエリは問題なく動作するはずです

create table members (symbid, surname, name, father, birthdate)
    (select id, surname1, name1, father1, birthdate1 from aitisi where on_te1 != ''
    union all
    select id, surname2, name2, father2, birthdate2 from aitisi where on_te2 != ''
    union all
    select id, surname3, name3, father3, birthdate3 from aitisi where on_te3 != ''
    union all
    select id, surname4, name4, father4, birthdate4 from aitisi where on_te4 != ''
    union all
    select id, surname5, name5, father5, birthdate5 from aitisi where on_te5 != '')
于 2012-06-27T07:31:37.777 に答える