La primera consulta está diciendo, en efecto, "Haz una combinación cruzada en estas colecciones (creando essensially una matriz N x M), a continuación, sólo aquellos que están a lo largo de la diagonal tomar, y Dámelas"
El La segunda consulta es, en efecto, "Crear una lista de solo los elementos combinados donde coinciden las proezas".
Los resultados son los mismos, pero el proceso de llegar es un poco diferente.
Dado que las bases de datos SQL generalmente están muy optimizadas, por lo tanto, cuando solicita la primera, el servidor simplemente dice "Usuario idiota ...", y sustituye a la segunda.
En entornos que no sean SQL (como Linq-to-Objects), si solicita el primero, eso es lo que hará, y verá un golpe de rendimiento significativo.
Es lo mismo que la combinación implícita vs explícita de SQL. Ambas son combinaciones, pero la segunda es explícita. – spender
Es 'Lo que más le convenga' - Ha vea lo que hice allí – PostMan