这个查询出了什么问题,多次插入

时间:2012-10-05 15:09:16

标签: mysql select error-handling insert

这个MySQL查询有什么问题,我该如何解决呢?

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);

这是我得到的错误:

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

2 个答案:

答案 0 :(得分:2)

这些是多个查询,而不仅仅是一个。在其间添加;以分隔它们:

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

insert into ...;
values ...

...

修改

如果要使用先前选择的值,则可以使用变量。例如:

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, '', '', '');

答案 1 :(得分:0)

simicolon ;必须终止多个查询。没有分号的单个查询是可以的,但是如果你向mysql服务器发送多个查询,它们必须由;

终止