¿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"));

Añade tu respuesta

Haz clic para o