INSERT...SELECT
आज़माएं बयान
INSERT INTO student_fees(id, name, fees)
SELECT ... -- put here the SELECT STATEMENT with condition
यदि आपका कॉलम ID
auto incremented
है , आपको 1
. निर्दिष्ट करने की आवश्यकता नहीं है अन्यथा यह आपको एक त्रुटि देगा।
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students -- this will select all students on the table
-- and add $200 on thier fees.
दूसरी बात यह है कि यदि आप student
. से केवल एक कॉलम सम्मिलित करना चाहते हैं तालिका में, आपको शर्त निर्दिष्ट करने की आवश्यकता है, इसलिए आपको बाधा त्रुटि नहीं मिलेगी (मान लें कि आपकी कॉलम आईडी प्राथमिक कुंजी है )
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students
WHERE columnName = 'blahBlah'
अपडेट 1
आपकी टिप्पणी देखकर, आपके पास यह प्रश्न है
INSERT INTO coupon_allotment (page_id, offer_id, coupon_code, user_id)
SELECT page_id, 4, 'ABC' -- number of columns mismatch, right?
FROM pages_discounts_association
WHERE discount_id = 4
आपको निकालने के लिए need की आवश्यकता है user_id
ऊपर कॉलम या आपको जोड़ने के लिए चाहिए एक ID
कॉलम की संख्या से मेल खाने के लिए अपने चयन कथन में।