あいまいな結合条件を防ぐために別の名前にエイリアスされていない限り、同じクエリで同じテーブル名を使用することはできません。そのため、許可されていません。また、常に修飾する table.field または alias.field を使用することをお勧めします。これにより、背後にいる他の開発者が、どの列がどのテーブルから来ているかを推測する必要がなくなります。
クエリを書くとき、あなたは自分が何を扱っているかを知っていますが、開発中のあなたの背後にいる人はどうですか. どの列がどのテーブルに由来するかについて慣れていない場合、特にここ S/O では、従うことがあいまいになる可能性があります。テーブル参照とフィールド、またはエイリアス参照とフィールドを使用して常に修飾することで、従うのがはるかに簡単になります。
select
SomeField,
AnotherField
from
OneOfMyTables
Join SecondTable
on SomeID = SecondID
それを比較して
select
T1.SomeField,
T2.AnotherField
from
OneOfMyTables T1
JOIN SecondTable T2
on T1.SomeID = T2.SecondID
これら 2 つのシナリオでは、どちらを読みたいと思いますか...注意してください。短いエイリアス "T1" と "T2" を使用してクエリを簡略化しましたが、テーブル名の頭字語や省略されたエイリアスなど、何でもかまいません.. . "oomt" (私のテーブルの 1 つ) と "st" (2 番目のテーブル)。または、他の投稿にあるように非常に長いもの...
Select * from ContractPurchaseOffice_AgencyLookupTable
vs
Select * from ContractPurchaseOffice_AgencyLookupTable AgencyLkup
修飾結合またはフィールド列を維持する必要がある場合は、どちらを参照することをお勧めします。
これで質問が明確になることを願っています。