SubQuery MySQL के साथ इंसर्ट - mysql, डालें, subquery

मेरे पास यह वक्तव्य है:

INSERT INTO qa_costpriceslog (item_code, invoice_code, item_costprice)
VALUES (1, 2, (SELECT item_costprice FROM qa_items WHERE item_code = 1));

मैं item_costprice के समान डेटा को प्रतिलिपि बनाने की कोशिश कर रहा हूं, लेकिन मुझे त्रुटि दिखाएं:

Error Code: 1136. Column count doesn"t match value count at row 1

मैं इसे कैसे हल कर सकता हूं?

उत्तर:

उत्तर № 1 के लिए 66

ए के अंदर उपनाम के साथ संख्यात्मक अक्षर का प्रयोग करें SELECT बयान। नहीं () के आसपास जरूरी हैं SELECT घटक।

INSERT INTO qa_costpriceslog (item_code, invoice_code, item_costprice)
SELECT
/* Literal number values with column aliases */
1 AS item_code,
2 AS invoice_code,
item_costprice
FROM qa_items
WHERE item_code = 1;

ध्यान दें कि एक के संदर्भ में INSERT INTO...SELECT, उपनाम वास्तव में आवश्यक नहीं हैं और आप बस कर सकते हैं SELECT 1, 2, item_costprice, लेकिन एक सामान्य में SELECT आपको वापस आने वाले कॉलम तक पहुंचने के लिए उपनाम की आवश्यकता होगी।


जवाब के लिए 4 № 2

आप बस बस उदास कर सकते हैं

INSERT INTO modulesToSections (fk_moduleId, fk_sectionId, `order`) VALUES
((SELECT id FROM modules WHERE title="Top bar"),0,-100);

जवाब के लिए 3 № 3

आपके सम्मिलन कथन में बहुत से कॉलम हैंबाईं तरफ या दाईं ओर पर्याप्त कॉलम नहीं। VALUES के पहले भाग में 7 स्तंभ सूचीबद्ध हैं, लेकिन VALUES के बाद दूसरा भाग केवल 3 कॉलम लौटा है: 1, 2, फिर उप-क्वेरी केवल 1 कॉलम लौटाती है।

संपादित करें: खैर, किसी ने प्रश्न को संशोधित करने से पहले किया ....


संबंधित सवाल
सबसे लोकप्रिय