bucles anidados es una manera de procesamiento une:
for each row of table A
if this row matches where clauses
for each row of joined table B
if this row matches where clauses and join clauses
accept row
end
end
end
end
que puede ser optimizado con índices un poco, haciendo "para cada fila que se encuentra en clave K en algún índice" en lugar de "cada fila de tabla A ", y lo mismo con la tabla B.
La presentación dice que esta es la única forma en que los procesos MySQL se unen. Existen otros métodos que pueden utilizarse, pero MySQL no los implementa. Esta entrada de OraFAQ proporciona varios que implementa Oracle: http://www.orafaq.com/tuningguide/join%20methods.html Similarmente: http://oracle-online-help.blogspot.com/2007/03/nested-loops-hash-join-and-sort-merge.html
"Todo es una unión" es solo un detalle de implementación, creo. No realmente tan importante.
He preguntado acerca de las selecciones de SINGLE TABLE en MySQL, por lo que su respuesta no se aplica. Puedes pensar que "no es tan importante", pero yo sí. Todavía me gustaría que * mi * pregunta sea respondida. – RADA
@RADA: No estoy seguro de cómo MySQL convierte una selección de una sola tabla en una combinación. ¿Tal vez se una a una tabla ficticia con una fila, o una a la izquierda a una tabla ficticia de cero filas? Supongo que el código fuente de MySQL lo diría con seguridad. – derobert