Tengo una duda, tengo que hacer una consulta utilizando varias tablas, y quiero saber cual tiene mejor performance.
Una forma de hacerlo es con el JOIN, quedaría así:
SELECT
escritor.nombre, SUM(precio),
SUM(precio)*0.20,
COUNT(*) AS "Cant. libros"
FROM escritor
JOIN poema ON escritor.id_escritor = poema.id_escritor
JOIN poema_libro ON poema.id_poema = poema_libro.id_poema
JOIN libro ON poema_libro.id_libro = libro.id_libro
GROUP BY escritor.id_escritor
La otra forma sería con un WHERE, osea:
SELECT
e.nombre, SUM(precio),
SUM(precio)*0.20,
COUNT(*) AS "Cant. libros"
FROM escritor e, poema p, poema_libro pl, libro l
WHERE
e.id_escritor = p.id_escritor AND
p.id_poema = pl.id_poema AND
pl.id_libro = l.id_libro
GROUP BY e.id_escritor
De la dos formas da los mismos resultados, pero quiero saber que opinan ustedes,cual de las dos es mas rápida, yo diria que el JOIN, porque va filtrando los registros antes hacer el JOIN con la otra tabla pero no estoy seguro. Diganme como es mejor para ustedes????
Es en MySQL