2

2つのSQLクエリがあります。

$res1 = mysql_query("SELECT * FROM `table1` WHERE `user`='user'");
$i = mysql_fetch_assoc($res1);    
$value1 = $i['num'];

と:

$res2 = mysql_query("INSERT INTO `table2` (`name`,`num`) VALUE ('name','$value1')");

2つのSQLクエリを1つに組み合わせる方法は?最初のリクエストの2番目のクエリから変数の値を取得する必要があります。出来ますか?

4

3 に答える 3

4

サブクエリを使用したこのクエリは、次のようにうまく機能するはずです。

insert into table 2 (`name`, `num`) 
    values ('name', (select `num` from table1 where `user`='user'));

numこれは、元のコードでは使用されていないように見えるため、2番目のクエリからのもの以外は何も使用していないことを前提としています。

編集:また、これは単なるselectステートメントではなく、挿入であることがわかりますが、結合、結合、サブクエリ、および束をカバーする複数のテーブルとSQLをカバーする、かなり長い質問と回答を読むことでメリットが得られる可能性がありますより多くのもの。

于 2012-09-29T22:39:35.490 に答える
4

INSERT INTO ... SELECT ...構文を使用できますか?

例:

INSERT INTO table2 (name, num)
SELECT 'name', num
FROM table1
WHERE user='user' 

(テストされていないので、ここで小さなエラーを許してください...)

于 2012-09-29T22:40:34.850 に答える
0

これをスクラップします。

最良の答えは、MYSQLが必要とするデータをPHPに持たせることです。他の方法でそれを行うと、ボトルネックが発生し、非効率になります。

于 2012-09-29T22:41:19.180 に答える