2013-04-04 9 views
35

शामिल करना चाहिए मैं table2 में एक table1 से डेटा सम्मिलित करने के लिए table2 के लिएMySQL त्रुटि 1241: ओपेरैंड 1 कॉलम (रों)

insert into table2(Name,Subject,student_id,result) 
select (Name,Subject,student_id,result) 
from table1; 

कुंजी student_id है कोशिश कर रहा हूँ।

मान लें कि कोई डुप्लिकेट नहीं है।

मैं त्रुटि मिलती है: MySQL error 1241: Operand should contain 1 column(s)

table2 में केवल चार स्तंभ हैं।

उत्तर

86

सिंटैक्स त्रुटि, select से () को हटा दें।

insert into table2 (name, subject, student_id, result) 
select name, subject, student_id, result 
from table1; 
+2

इससे मेरी समस्या भी हल हो गई। लेकिन मुझे समझ में नहीं आता क्यों? – Chud37

16

बस अपने SELECT कथन पर ( और ) निकालें:

insert into table2 (Name, Subject, student_id, result) 
select Name, Subject, student_id, result 
from table1; 
0

पार्सर को एक ही अपवाद बढ़ाने का एक और तरीका निम्नलिखित गलत खंड है।

चयन r.name से भूमिकाओं r कहां में आईडी (ROLE_ID का चयन करें, role_members से system_user_id हूँ कहां r.id = m.role_id और m.system_user_id = intIdSystemUser )

नेस्टेड आईएन क्लॉज में चयन कथन दो कॉलम लौटाता है, जो पार्सर ऑपरेटरों के रूप में देखता है, जो तकनीकी रूप से सही है, क्योंकि आईडी कॉलम ने मूल्यों से मेल खाता है लेकिन परिणामस्वरूप एक कॉलम (role_id) नेस्टेड सिलेक्शन स्टेटमेंट द्वारा लौटाया गया है, जो वापस आने की उम्मीद है एक सूचि।

पूर्णता के लिए, सही वाक्यविन्यास निम्नानुसार है।

चयन r.name से भूमिकाओं r कहां में आईडी (चयन ROLE_ID से role_members हूँ कहां r.id = m.role_id और m.system_user_id = intIdSystemUser ) जिनमें से

संग्रहीत प्रक्रिया यह क्वेरी न केवल एक भाग है, बल्कि अपेक्षित परिणाम लौटा है।

संबंधित मुद्दे