RSM
RSM

Reputation: 15118

What is wrong with this query, multiple inserts

what is wrong with this MySQL query and how do i solve it?

SELECT f.uniqueidentifier FROM db.engine4_passport_userforms uf
INNER JOIN db.engine4_passport_forms f ON uf.form_id = f.form_id
WHERE uf.user_id = 10
INSERT INTO db.engine4_passport_registrationchildren (parentid, `First Name`, Surname, Relationship) VALUES ( f.uniqueidentifier, '', '', '')
INSERT INTO db.engine4_passport_registrationcontactdetails (Address, Telephone, UID, Postcode) VALUES ('3 street', '',  f.uniqueidentifier, 'aaaaaa')
INSERT INTO db.engine4_passport_registrationcontactprefs (parentid, prefs) VALUES ( f.uniqueidentifier, 'Post Email ')
INSERT INTO db.engine4_passport_registrationfoundus (parentid, medium, `reason for joining`) VALUES ( f.uniqueidentifier, '', '')
INSERT INTO db.engine4_passport_registrationhousehold (parentid, `chief earner occupation`, `number of people`, `number of children`) VALUES ( f.uniqueidentifier, 'build', '1', '0')
INSERT INTO db.engine4_passport_registrationinterests (parentid, interest) VALUES ( f.uniqueidentifier, '')
INSERT INTO db.engine4_passport_registrationpersonaldetails (parentid, ethnicity) VALUES ( f.uniqueidentifier, 'White')
INSERT INTO db.engine4_passport_registrationqanda VALUES ( f.uniqueidentifier, '4', '1', '1', '1', '3', '3', '5', '5', '3', '4', '5', '4')
INSERT INTO db.engine4_passport_registrationteam (parentid, team?, `no of team members`, relationship) VALUES ( f.uniqueidentifier, 'No', '', '')
INSERT INTO db.engine4_passport_registrationuserlink (userid, regformUID) VALUES ('10',  f.uniqueidentifier);

Here is the error i am getting:

Script line: 1  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO db.engine4_passport_registrationchildren (parentid, `Fir' at line 2

Upvotes: 0

Views: 111

Answers (2)

juergen d
juergen d

Reputation: 204854

These are multiple queries and not just one. Add ; in between to seperate them:

select ....
inner join ...
where ...;

insert into ...;
values ...

...

edit

if you want to use a value from a previous select then you can use a variable. Example:

SELECT @var := f.uniqueidentifier 
FROM db.engine4_passport_userforms uf
INNER JOIN db.engine4_passport_forms f ON uf.form_id = f.form_id
WHERE uf.user_id = 10;

INSERT INTO db.engine4_passport_registrationchildren (parentid, `First Name`, Surname, Relationship) 
VALUES (@var, '', '', '');

Upvotes: 2

Shakti Singh
Shakti Singh

Reputation: 86406

multiple queries must be terminated by the simicolon ;. Single query is okay without the semicolon but if you send multiple queries to mysql server they must be terminated by ;

Upvotes: 0

Related Questions