Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL: Can I INSERT some fields from variables other from another table

Tags:

sql

mysql

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' ";
like image 246
sdfor Avatar asked Jan 24 '23 04:01

sdfor


2 Answers

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
like image 177
Guffa Avatar answered Jan 29 '23 09:01

Guffa


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.

like image 39
ChssPly76 Avatar answered Jan 29 '23 08:01

ChssPly76