MySQL दो फ़ील्ड पर तालिकाओं को कैसे जोड़े


102

मेरे पास dateऔर idखेतों के साथ दो टेबल हैं। मैं दोनों क्षेत्रों में शामिल होना चाहता हूं। मैंने कोशिश की

JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date)

यह काम करता है, लेकिन यह बहुत धीमा है। क्या ऐसा करने के लिए इससे अच्छा तरीका है?

जवाबों:




27
SELECT * 
FROM t1
JOIN t2 USING (id, date)

शायद आपको INNEER JOIN का उपयोग करने की आवश्यकता होगी या जहाँ t2.id शून्य नहीं है यदि आप परिणाम चाहते हैं तो केवल दोनों स्थितियों का मिलान


1
मूल रूप से, सुस्ती इसलिए है क्योंकि ठोस नए मूल्यों की गणना करता है जिनके कोई अनुक्रमित नहीं है इसलिए प्रत्यक्ष परिस्थितियां तेज होनी चाहिए। अगर यह क्वेरी फिर से धीमी होगी, तो चेक इंडेक्स मौजूद है, और कभी-कभी 2 क्षेत्रों के लिए एक इंडेक्स बनाना भी समझ में आता है।
यूजीन कौरोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.