¿Cómo explicar fácilmente que se obtienen resultados erróneos si se utiliza mismo alias en INNER JOIN que en subconsulta?
¿Cómo explicar a un alumno (de la forma más fácilmente entendible teniendo en cuenta que está comenzando a ver consultas) por qué se obtienen resultados erróneos si se utiliza mismo alias en INNER JOIN que en subconsulta? Lo ilustro:
La primera consulta devuelve distinto valor que la segunda, siendo la segunda una forma correcta de realizarla para obtener resultado esperado:
1. Consulta con mismos alias en inner join que en subconsultas:
SELECT P.nombre,p.precio FROM producto p INNER JOIN fabricante f
on p.codigo_fabricante=f.codigo
WHERE p.precio=(SELECT MIN(p.precio)
FROM producto
WHERE p.codigo_fabricante=(SELECT f.codigo FROM fabricante f WHERE f.nombre LIKE "Hewlett-Packard"));
2. CONSULTA CON DISTINTOS ALIAS EN INNER JOIN QUE EN SUBCONSULTAS:
SELECT p1.nombre,p1.precio FROM producto p1 INNER JOIN fabricante f1
on p1.codigo_fabricante=f1.codigo
WHERE p1.precio=(SELECT MIN(p2.precio)
FROM producto p2
WHERE p2.codigo_fabricante=(SELECT f2.codigo FROM fabricante f2 WHERE f2.nombre LIKE "Hewlett-Packard"));