Hola, he estado leyendo sobre la generación de consultas y el problema que me suele llevar cuando tengo mas de 100.000 elementos por tabla.
En primer lugar mes gustaría saber si en una consulta donde se contatenan 4 tablas por ejemplo, sería mejor el uso de LEFT JOIN o sin embargo usar condiciones dentro de la clausula WHERE como el siguiente ejemplo:
con where:
Cita: SELECT DISTINCT(p.id), p.nombre, p.url FROM provincia p, empresa e, empresa_subcategoria es, estancia_subcategoria esc WHERE p.id_pais='$pais' AND e.provincia=p.id AND e.id=es.id_empresa AND e.activado='1' AND esc.id_subcategoria=es.id_subcategoria AND esc.id_estancia='$id_estancia'
con left join:
Cita: SELECT DISTINCT(p.id), p.nombre, p.url
FROM provincia p
LEFT JOIN empresa e ON e.provincia=p.id
LEFT JOIN empresa_subcategoria es ON e.id=es.id_empresa
LEFT JOIN estancia_subcategoria esc ON esc.id_subcategoria=es.id_subcategoria
WHERE p.id_pais='$pais' AND e.activado='1' AND esc.id_estancia='$id_estancia'
Segun he leido lo más conveniente sería usar left join en algunas paginas, en otras dicen que es indiferente y en otras directamente que es peor el uso de left join. En cualquier caso me gustaría optimizar esta consulta al máximo.
Saludos y gracias