MySQL iki alandaki tabloları nasıl birleştirir


102

dateVe idalanları olan iki tablom var . Her iki alanda da katılmak istiyorum. denedim

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

işe yarıyor, ancak çok yavaş. bunu yapmanın daha iyi bir yolu var mı?

Yanıtlar:




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

belki INNEER JOIN kullanmanız gerekecek veya sadece her iki koşulla eşleşen sonuçların olmasını istiyorsanız t2.id null olmadığında


1
Temel olarak, yavaşlık, betonun indeksi olmayan yeni değerleri hesaplamasıdır, bu nedenle doğrudan koşulların daha hızlı olması gerekir. bu sorgu tekrar yavaş olsa bile, indekslerin olup olmadığını kontrol edin ve bazen 2 alan için bir indeks oluşturmak da mantıklıdır.
Eugene Kaurov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.