2009-01-31 13 views
79

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

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

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

उत्तर

28
JOIN t2 ON (t2.id = t1.id AND t2.date = t1.date) 
18
SELECT * 
FROM t1 
JOIN t2 USING (id, date) 

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

+0

मूल रूप से मिलान INNEER का उपयोग शामिल हों या करने की आवश्यकता होगी, सुस्ती क्योंकि ठोस गणना है नए मान जिनमें कोई इंडेक्स नहीं है, इसलिए प्रत्यक्ष स्थितियां तेज होनी चाहिए। यदि यह क्वेरी फिर भी धीमी हो जाएगी, तो जांचें इंडेक्स मौजूद हैं, और कभी-कभी 2 फ़ील्ड के लिए एक इंडेक्स बनाना भी समझ में आता है। –

संबंधित मुद्दे