0

列 x と列 ID を持つテーブルがあります。列 x から最初の値を取得し、テーブル b の列 y に挿入しようとしています。

これが私がやったことですが、うまくいきません:

$val=mysql_query("SELECT x FROM table_a WHERE id=MIN(id)");
$sql=mysql_query("INSERT INTO table_b (y) VALUES('$val')");

また、テーブル a 列 x から値を削除すると、テーブル b 列 y の値をテーブル a の前の値で更新する必要があります。

4

4 に答える 4

2

で試してくださいSELECT INTO

INSERT INTO table_b (y)
     SELECT MIN(table_a.id)
       FROM table_a

PHP の場合:

$sql=mysql_query('INSERT INTO table_b (y) SELECT MIN(table_a.id) FROM table_a');
于 2012-09-05T07:37:13.850 に答える
1

ORDER BY id ASC LIMIT 1の代わりに使用MIN:

$val=mysql_query("SELECT x FROM table_a ORDER BY id ASC LIMIT 1");
$sql=mysql_query("INSERT INTO table_b (y) VALUES('$val')");

または単一のクエリで:

$sql=mysql_query("INSERT INTO table_b (y) 
                 (SELECT x FROM table_a ORDER BY id ASC LIMIT 1)");
于 2012-09-05T07:36:38.297 に答える
0

あなたがしていることは、あるテーブルから別のテーブルにデータをコピーすることです。最初に日付を取得してから挿入する必要はありません。

INSERT .. SELECT構文を使用します。

于 2012-09-05T07:40:04.853 に答える
0

この方法で試してみてください

$val=mysql_query("SELECT x FROM table_a WHERE id=MIN(id)");
$val_res = mysql_fetch_assoc($val);
$sql=mysql_query("INSERT INTO table_b (y) VALUES('".$val_res['x']."')");
于 2012-09-05T07:41:04.827 に答える