दो अलग-अलग डेटाबेस में तालिकाओं के बीच सम्मिलित हों?


123

MySQL में, मेरे पास दो अलग-अलग डेटाबेस हैं - चलो उन्हें और बी कहते हैं ।

क्या डेटाबेस B में है, जो तालिका में डेटाबेस A में है , उस तालिका के बीच में शामिल होना संभव है ?

जवाबों:


154

हां, यह मानकर कि आपके पास उपयुक्त अनुमतियाँ हैं जिनका आप उपयोग कर सकते हैं:

SELECT <...>
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1;

आपको बस उस डेटाबेस के नाम के साथ तालिका संदर्भ को उपसर्ग करने की आवश्यकता है जिसमें वह रहता है।


4
विभिन्न सर्वरों से दो डेटाबेस के बारे में क्या? (उदाहरण के लिए, क्लाउड सेवा सर्वर पर एक db और अपने स्वयं के सर्वर पर db पर)
युवल ए

1
क्या विभिन्न DB, DB1 = mysql & DB2 = PostgreSQL) में शामिल होना संभव है। दोनों में कुछ सामान्य टेबल हैं।
अधिकतम

1
@ युवलए। @ बोटकोडर मुझे नहीं लगता कि युवल प्रदर्शन के बारे में पूछ रहा है। बस एक क्रॉस-सर्वर से जुड़ने के तरीके के बारे में पूछ रहा है। काफी मुश्किल होगा क्योंकि आपको क्लाइंट से दो कनेक्शन बनाने के लिए कहने की जरूरत है।
Jayen

सुनिश्चित करें कि डेटाबेस का नाम टेबल बैक के समान बैकटिक्स के अंदर नहीं है अन्यथा आपको मिलेगाERROR 1146 (42S02): Table 'currentdb.otherdb.tablename' doesn't exist
जेफ

धन्यवाद। इसने मेरे साथ बिना अन्य नामों के भी काम कियाFROM A.table1 JOIN B.table2 ON B.table2 .column2 = A.table1.column1
एकाउंटेंट एन



0
SELECT <...>
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1;

बस यह सुनिश्चित करें कि सेलेक्ट लाइन में आप निर्दिष्ट करें कि आप किस टेबल कॉलम का उपयोग कर रहे हैं, या तो पूर्ण संदर्भ द्वारा, या अन्य नाम से। निम्नलिखित में से कोई भी काम करेगा:

SELECT *
SELECT t1.*,t2.column2
SELECT A.table1.column1, t2.*
etc.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.