2011-06-13 104 views
0

我正在尝试此查询,但无法正常工作。错误1064 - MySQL中针对INSERT语句的SQL语法

ERROR: #1064 - 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 '= (SELECT id_university FROM university WHERE university = "xxx") , `singl' at line 2

INSERT INTO `database_charts`.`university_has_single_user` (
     `university_id_university` = (SELECT id_university FROM university WHERE university = "xxx") , 
     `single_user_users_id_user` = (SELECT users_id_user FROM single_user WHERE users_id_user = "1"), 
     `course_id_course`= (SELECT id_course FROM course WHERE course = "yyy"), 
     `year`= "2000") 

这又如何解决呢?

+1

1)你想达到什么目的? 2)你的意思是什么“不起作用”? – Tadeck 2011-06-13 18:08:07

+0

这不是一个问题(http://www.catb.org/~esr/faqs/smart-questions.html)。 – marto 2011-06-13 18:09:08

+0

问题更新 – 2011-06-13 18:10:08

回答

3

除非MySQL支持一个很奇怪的语法,这不是你如何写一个INSERT语句。它采用这种形式:

INSERT INTO <TableName> (<Column1,Column2,..,ColumnN>) VALUES (<Value1,Value2,..,ValueN>) 

所以,你将不得不

INSERT INTO database_charts.university_has_single_user (
    university_id_university, 
    single_user_users_id_user, 
    course_id_course,year) 
VALUES (
    (SELECT id_university FROM university WHERE university = 'xxx'), 
    (SELECT users_id_user FROM single_user WHERE users_id_user = '1'), 
    (SELECT id_course FROM course WHERE course = 'yyy'), 
    '2000' 
) 

警告:我不知道的MySQL是否会真正处理嵌套选择每个列的值,但上述 INSERT语句通常如何写入。

+0

完美运作。谢谢 – 2011-06-13 18:18:42

+0

我想,如果其中一个SELECT返回多个值,这可能会引发错误。好的答案,它根本不闪光。 – Lobo 2011-06-14 01:49:36