Solución:
Hay una pequeña diferencia en la sintaxis, pero ambas consultas hacen una combinación en el P_Id
campos de las respectivas tablas.
En su segundo ejemplo, esta es una implícito unirse, que está restringiendo en su WHERE
cláusula a la P_Id
campos de ambas tablas.
La combinación es explícita en su primer ejemplo y la cláusula de combinación contiene la restricción en lugar de una adicional WHERE
cláusula.
Son básicamente equivalentes. En general, el JOIN
las palabras clave le permiten ser más explícito sobre la dirección (LEFT
, RIGHT
) y escriba (INNER
, OUTER
, CROSS
) de su combinación.
Esta publicación SO tiene una buena explicación de las diferencias en la queja ANSI SQL y tiene similitudes con la pregunta que se hace aquí.
Si bien (como se ha dicho) ambas consultas producirán el mismo resultado, creo que siempre es una buena idea indicar explícitamente sus JOIN. Es mucho más fácil de entender, especialmente cuando hay evaluaciones no relacionadas con JOIN en la cláusula WHERE.
Declarar explícitamente su JOIN también le impide consultar inadvertidamente un producto cartesiano. En su segunda consulta anterior, si (por cualquier motivo) olvidó incluir su cláusula WHERE, su consulta se ejecutará sin condiciones JOIN y devolverá un conjunto de resultados de cada fila en Personas que coinciden con cada fila en Pedidos … probablemente no sea algo que quieres.