tags:

views:

135

answers:

2

SQL Question

I wonder if I can write a single sql INSERT statement to insert a row into a table where some of the fields come from variables and others come from another table. Currently I select from tableA, store the fields in variables and then insert them into tableB. In the following example I'd like to get field1, field2, and field3 from tableA and the rest from variables. (mysql)

$sql = "SELECT field1, field2, field3 FROM tableA where product = 5";

... php code

$sql = "INSERT tableB SET fkey = 100, custid = 10, product = 5, field1 = '$field1', field2 = '$field2', field3 = '$field3' ";

... php code

+1  A: 
INSERT INTO tableB (fkey, custid, product, field1, field2, field3)
SELECT 100, 10, product, field1, field2, field3 FROM tableA
 WHERE product = 5

You can, of course, replace constants in above statement with your variables.

ChssPly76
thanks yes, of course which I do. I was trying to make the question understandable.
sdfor
+3  A: 

Yes, you just mix literal values and fields in a select and insert:

insert into tableB (fkey, custid, product, field1, field2, field3)
select 100, 10, 5, field1, field2, field3
from tableA
where product = 5
Guffa
actually I'm sorry I didn't understand your answer. Thanks
sdfor