mysql sql statement - SQL INSERT INTO SELECT

I have a table named table1 which has the names of customers inside.
In table1 and table2 I have unique customer id which I can use when I copy customer names,

I want to copy all the names from table1 into table2 with the related customer id?

how should I write the sql statement?
LVL 1
BRMarketingAsked:
Who is Participating?
 
Ryan ChongConnect With a Mentor Commented:
you should able to do an update like this?

Update KullaniciBilgileriiki a
inner join bayibilgileriiki b
on a.uid= b.uid
set a.isim = b.adi

Open in new window

let me know if you got any syntax error, etc
0
 
BRMarketingAuthor Commented:
I have a unique id on the both table : customerid
0
 
Ryan ChongCommented:
use Update if the customer Id already exists in table2

use Insert into if the customer id not exists in table2
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
skullnobrainsCommented:
something like this should do if and only if your customer_id field is unique in the destination table2

insert into table2 select customer_id, customer_name from table1 on duplicate key update customer_name = VALUES (customer_name)

Open in new window


---

if you don't have the index, try something like this

lock database

create table temp as select table2.*,table1.customer_name from table2 inner join table1 on table1.customer_id =  table2.customer_id

rename table2 to t , temp to table2

drop table t

Open in new window

0
 
Ryan ChongCommented:
for update:

Update table2 a
inner join table1 b
on a. customerid = b.customerid
set a.customername = b.customername

Open in new window


for insert:

Insert into table2 (customerid, customername)
select a.customerid, a.customername
from table1 a left join table2 b
on a.customerid = b.customerid
where b.customerid is null

Open in new window


code not tested, pls customize accordingly.
0
 
BRMarketingAuthor Commented:
Dear Ryan Chong,
what does a mean? I mean what is table2 a?
a = column?
0
 
Ryan ChongCommented:
nope, a is the alias of the table.

we can write:
 table2 a

Open in new window

as
 table2 as a

Open in new window

0
 
skullnobrainsCommented:
did you try using the "on duplicate key update" way ? unless there is something not workable, it is the only way to do it in a single query
0
 
BRMarketingAuthor Commented:
Dear skullnobrains, Ryan Chong

I'm sorry, I couldn't manage it..

My actual table name is "bayibilgileriiki" which has the data of the customer names.
and the a column name is "adi"

I want to copy "adi" coloumn to "KullaniciBilgileriiki" table's "isim" column.
"isim" column is now NULL.

I have unique customer id on both tables which coloumn name is "uid" for both of them

could you help me please?
0
 
BRMarketingAuthor Commented:
thank you
0
 
skullnobrainsCommented:
just for reference since you already got a working solution

insert into KullaniciBilgileriiki ( uid , isim ) select uid,adi from bayibilgileriiki on duplicate key update isim = VALUES (isim)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.