No se puede usar el mismo nombre de tabla en la misma consulta A MENOS QUE se alias como algo más para evitar una condición ambigua de unión. Es por eso que no está permitido. Debo señalar, también es mejor usar siempre calificar table.field o alias.field para que otros desarrolladores detrás de ti no tengan que adivinar qué columnas provienen de qué tablas.
Al escribir una consulta, USTED sabe con qué está trabajando, pero ¿qué hay de la persona detrás de usted en el desarrollo. Si alguien no está acostumbrado a qué columnas provienen de qué tabla, puede ser ambiguo seguirlo, especialmente aquí en S/O. Al calificar siempre usando la referencia y el campo de la tabla, o la referencia y campo de alias, es mucho más fácil de seguir.
select
SomeField,
AnotherField
from
OneOfMyTables
Join SecondTable
on SomeID = SecondID
que para comparar
select
T1.SomeField,
T2.AnotherField
from
OneOfMyTables T1
JOIN SecondTable T2
on T1.SomeID = T2.SecondID
En estos dos escenarios, que prefiere leer ... Aviso, he simplificado la consulta utilizando alias cortos "T1" y "T2", pero podrían ser cualquier cosa, incluso un acrónimo o alias abreviado de los nombres de tabla ... "oomt" (una de mis tablas) y "st" (segunda tabla). O, como algo muy largo como ha sido en otras publicaciones ...
Select * from ContractPurchaseOffice_AgencyLookupTable
vs
Select * from ContractPurchaseOffice_AgencyLookupTable AgencyLkup
Si tuviera que mantener la calificación se une, o columnas de campo, ¿Qué prefiere mirar.
Espero que esto aclare su pregunta.
@Siva corregido, gracias –