MySQL cara menggabungkan tabel di dua bidang


102

Saya memiliki dua tabel dengan bidang datedan id. Saya ingin bergabung di kedua bidang. Saya mencoba

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

yang berhasil, tetapi sangat lambat. apakah ada cara yang lebih baik untuk melakukan ini?

Jawaban:




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

mungkin Anda perlu menggunakan INNEER JOIN atau di mana t2.id bukan null jika Anda ingin hasil hanya cocok dengan kedua kondisi tersebut


1
Pada dasarnya, kelambatan adalah karena beton menghitung nilai baru yang tidak memiliki indeks sehingga kondisi langsung harus lebih cepat. bahkan jika kueri ini akan menjadi lambat lagi, periksa apakah indeks ada, dan terkadang pembuatan satu indeks untuk 2 bidang juga masuk akal.
Eugene Kaurov
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.