MySQL cómo unir tablas en dos campos


102

Tengo dos tablas con campos datey id. Quiero unirme en ambos campos. Lo intenté

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

eso funciona, pero es muy lento. ¿Hay una mejor manera de hacer esto?

Respuestas:




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

tal vez necesite usar INNEER JOIN o donde t2.id no es nulo si desea resultados que solo coincidan con ambas condiciones


1
Básicamente, la lentitud se debe a que el hormigón calcula nuevos valores que no tienen índices, por lo que las condiciones directas deberían ser más rápidas. si incluso esta consulta volviera a ser lenta, compruebe si existen índices y, a veces, también tiene sentido la creación de un índice para 2 campos.
Eugene Kaurov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.