2011-06-13 105 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