2011-12-09 17 views
0

は私が持っているテーブルのサンプルです:MySQLのバッチと結合:SQLファイル注入を使用することは可能ですか?ここで

mysql> select * from table_a where description='Auto'; 
+----+----------+-------------+-----------------+ 
| id | idparent | description | description_url | 
+----+----------+-------------+-----------------+ 
| 11 |  NULL | Auto  | NULL   | 
| 74 |  73 | Auto  | NULL   | 
+----+----------+-------------+-----------------+ 
2 rows in set (0.00 sec) 

mysql> 

今、私は別のテーブルに別のレコードを挿入して、その最後に挿入IDを覚えている:

INSERT INTO table_b (description) values ('Myvalue'); 
set @lt=LAST_INSERT_ID(); 

は今、私は@ltに値を持っています。 私はこれを行うことができます(そして、それは動作します):

INSERT INTO table_a_link_b (id_a, id_b) VALUES (11, @lt); 
INSERT INTO table_a_link_b (id_a, id_b) VALUES (74, @lt); 

を今すぐ次のが動作しません何:

mysql> set @t=(select id from table_a where description='Auto'); 
ERROR 1242 (21000): Subquery returns more than 1 row 

INSERT INTO table_a_link_b (id_a, id_b) VALUES 
    ((SELECT id FROM table_a where description='Auto') , @lt); 

は、だから私は変数にそれを入れてみましたそれは動作しません。私は PHPのバッチファイルを作成せずに SQLを行うことができる方法はありますか?

+0

。明確にできますか? –

+0

バッチ=注文があるファイル。 SQLバッチ= SQL注文があるファイル。インジェクション= ** 'mysql -uユーザ - パスワードデータベース

答えて

2
INSERT INTO table_a_link_b (id_a, id_b) 
SELECT id,@lt FROM table_a where description='Auto'; 
+0

あなたのおかげで、うまくいきました。 ** 'metier_categorieへの挿入(SELECT @ lt、categorie2からのid、description =' Automobile '); '**もう一度ありがとう! –

0

この作品のようなものはありませんか? `batch`と` injection`の使用により混乱

INSERT INTO table_a_link_b (id_a, id_b) 
    SELECT id, max(table_b.id) FROM table_a 
    join table_b on table_a.description = table_b.description 
    where table_a.description='Auto' group by table_a.id;