2010-04-21 3 views
7

मुझे INSERT INTO table A करने का कोई तरीका ढूंढने की आवश्यकता है, लेकिन मानों में से एक ऐसा है जो तालिका बी पर लुकअप से आता है, मुझे चित्रित करने की अनुमति दें।किसी अन्य तालिका से लुकअप के आधार पर मूल्य कैसे सम्मिलित करें?

तालिका A:

A1: String 
A2: Integer value coming from table B 
A3: More Data 

टेबल बी: एक के

B1: String 
B2: Integer Value 

उदाहरण पंक्ति: { "मूल्य", 101

2 निम्न तालिकाओं है , MoreData} बी की उदाहरण पंक्ति: {"अंग्रेज़ी", 101}

अब, मुझे पता है कि मुझे निम्नलिखित को {{Value2 "," अंग्रेज़ी ", मोरडाटा} में शामिल करने की आवश्यकता है, लेकिन जाहिर है कि यह काम नहीं करेगा क्योंकि यह दूसरे कॉलम में इंटीजर की अपेक्षा" अंग्रेजी "शब्द नहीं है, इसलिए मुझे टेबल बी में पहले एक लुकअप करने की ज़रूरत है।

कुछ इस तरह:

INSERT INTO tableA (A1, A2, A3) 
VALUES ("Value2", SELECT B2 FROM tableB where B1="English", MoreData); 

जाहिर है इस के रूप में काम नहीं करता है ...

कोई सुझाव?

उत्तर

6

तरीके के बारे में:

Insert into tableA (a1,a2,a3) 
(select "value2", b2, moreData from TableB where B1 = "English") 
+0

काम करने के लिए प्रतीत नहीं होता है ... सिंटैक्स के बारे में पास शिकायत चुनते हैं। यदि यह मानक दृष्टिकोण है तो मेरे पास कहीं टाइपो होना चाहिए (अब इसे देख रहा है)। लेकिन, मेरे एक दोस्त ने मुझे निम्नलिखित बताया "एक मूल्य खंड में, आप केवल चर या स्थिरांक निर्दिष्ट कर सकते हैं"। मुझे लगता है कि वह गलत है (एक रास्ता होना चाहिए) – Shaitan00

+0

शायद यह 'चयन ...' भाग के आसपास कोष्ठक है? विशेष रूप से SQL सर्वर में उन्हें वहां और संभवतः अवैध भी आवश्यकता नहीं है। हालांकि, अन्य सर्वर उत्पादों के बारे में पता नहीं है। –

1

ऐसा लगता है कोष्ठकों के बिना अधिक पार डीबीएमएस, के रूप में @Andriy एम टिप्पणी की हो:

insert into tableA (a1, a2, a3) 
select 'value2', b2, moreData from tableB where B1='English'