0
SELECT T1_C1,...,T1_C100, T2_C1,T2_C2 FROM T1 INNER JOIN T2 on T1.index_T1 = T2.index_T2

上記のように、以下のコードを使用して作成したインデックスの 2 つのテーブルから内部結合しようとしています。

CREATE INDEX index_T1 on T1 (T1_PID)
CREATE INDEX index_T2 on T2 (T2_PID)

不明な列「T1.indexT1」を取得し続けます。テーブルプレフィックスを削除しても同じです。正しい構文の実例を見つけるのに苦労しています。テーブルに最初に適用する必要がある特別な処理はありますか?

4

1 に答える 1

1

インデックスを名前で明示的に言及する必要はありません。

インデックス名は、インデックスを維持する (削除するなど) ための識別子にすぎません。また、mysql は、どの列がクエリに参加しているか、どの列がどのようにインデックスに含まれているかに基づいて、自動的にインデックスを使用します。

したがって、列名を指定するだけです:

INNER JOIN T2 on T1.t1_pid = T2.t2_pid

PS:この特定のクエリでは、おそらくT1テーブルのインデックスは必要ありません

于 2012-09-12T02:43:52.013 に答える