suekun9999 さんの引用:
テーブルAの[項目1]を選択しています。
suekun9999 さんの引用:
片方のテーブルのみ選択していますので、別名は付けていません。
suekun9999 さんの引用:
[クエリーA]![項目1]
のところを、
[テーブルA]![項目1]
と記載する
ならば実質的には次のようなクエリを実行しているのと同じです。
([クエリーB]の SQL ビュー)
---------------------------------------------------------------
SELECT
[クエリーA].[テーブルA].[項目1]
FROM [クエリーA];
---------------------------------------------------------------
この場合、FROM 句で呼び出されているテーブル/クエリは
[クエリーA]だけなので、SELECT 句におけるクエリ名の
修飾を省略し、次のように記述することも出来ます。
([クエリーB]の変更例 1 )
---------------------------------------------------------------
SELECT
[テーブルA].[項目1]
FROM [クエリーA];
---------------------------------------------------------------
([クエリーB]の変更例 2 )
---------------------------------------------------------------
SELECT
[項目1]
FROM [クエリーA];
---------------------------------------------------------------
もし[クエリーA]において[テーブルA]の[項目1]と[テーブルB]の[項目1]が
両方とも選択されており、かつどちらにも別名がつけられていない
(次のようなクエリである)場合は、上記 1 の例のように記述しなければ、
どちらのテーブルの[項目1]を参照すべきか特定することが出来ません。
([クエリーA]の SQL ビュー)
---------------------------------------------------------------
SELECT [テーブルA].[ID],
[テーブルA].[項目1],
[テーブルB].[項目1]
FROM [テーブルA]
INNER JOIN [テーブルB]
ON [テーブルA].[ID] = [テーブルB].[ID];
---------------------------------------------------------------
したがって、上記 2 の例のような記述の仕方をすれば構文エラーが発生します。
引用:
表面上見えていない項目を指定している
[クエリーA]において選択された[テーブルA]の[項目1]に
別名がつけられていないのであれば、MMYS さんが例示されたように
「ネストされたクエリ側において選択されたフィールドを
ネストしたクエリ側からそのまま参照している」に過ぎません。
逆に[テーブルA]の[項目1]に対して次のように別名がつけられた場合、
ネストする側のクエリではその別名を記述する必要があります。
([クエリーA]の SQL ビュー)
---------------------------------------------------------------
SELECT [テーブルA].[ID],
[テーブルA].[項目1] AS [項目1_A],
[テーブルB].[項目1] AS [項目1_B]
FROM [テーブルA]
INNER JOIN [テーブルB]
ON [テーブルA].[ID] = [テーブルB].[ID];
---------------------------------------------------------------
([クエリーB]の SQL ビュー)
---------------------------------------------------------------
SELECT [クエリーA].[ID],
[クエリーA].[項目1_A],
[クエリーB].[項目1_B]
FROM [クエリーA];
---------------------------------------------------------------
先述した「
そのように記述する必要があるかどうか」というのは、
つまりそういうことです。
以上の点を踏まえて話を本題に戻すと、上記のような構文上/機能上の
問題を含んでいないのであれば、"[クエリーA].[テーブルA].[項目1]"
のように冗長な記述をわざわざする必要はないと言えます。
普通に "[クエリーA].[項目1]" と記述なさればよいでしょう。