Tengo dos tablas con date
y campos. Quiero unirme en ambos campos. IntentéMySQL cómo unir tablas en dos campos
JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date)
que funciona, pero es muy lento. ¿Hay una mejor manera de hacer esto?
Tengo dos tablas con date
y campos. Quiero unirme en ambos campos. IntentéMySQL cómo unir tablas en dos campos
JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date)
que funciona, pero es muy lento. ¿Hay una mejor manera de hacer esto?
JOIN t2 ON t1.id=t2.id AND t1.date=t2.date
JOIN t2 ON (t2.id = t1.id AND t2.date = t1.date)
SELECT *
FROM t1
JOIN t2 USING (id, date)
tal vez tendrá que usar INNEER JOIN o donde t2.id no es nulo si desea que los resultados sólo se emparejan ambas condiciones
Básicamente, lentitud se debe a que calcula concretas nuevos valores que no tienen índices, por lo que las condiciones directas deberían ser más rápidas. si incluso esta consulta volvería a ser lenta, la comprobación es que existen índices, y a veces la creación de un índice para 2 campos también tiene sentido. –