2011-02-28 7 views
0

私は、次のSQLがカテゴリcテーブルに対してALLのタイプを持つ理由を理解しようとしています。MySQLは全テーブル画面を実行しています

EXPLAIN SELECT 
t.todo_id, 
t.name todo_name, 
c.name category_name 
FROM 
todos t, 
categories c 
WHERE t.category_id = c.category_id 

todosテーブルはcategory_idにインデックスを有し、todo_idは、主キーです。 カテゴリテーブルのcategory_id列が主キーです。

EXPLAINは、カテゴリテーブルの可能なキーとしてPRIMARYをリストしますが、使用していません。

ありがとうございました。

+0

私はJean LouisからSQLを試しましたが、タイプは引き続きpossible_keysがPRIMARYとしてリストされています。 – thestepafter

答えて

1

簡単です。あなたのクエリはテーブルからすべてのデータを選択します。 WHEREステートメントを追加するとすべてが問題ありません。

+0

私はどこで/と句がたくさんあるので、私はそれをいくつか使って遊んでいますが、それはずっと長いので、例には含めませんでした。 – thestepafter

+0

私はあなたのテーブルを含むテストデータベースを作成し、それをテストしました。すべて正常に動作します。気にしないでください。 WHERE文を含める場合、型は "const"です。あなたがここに投稿しなかったWHEREステートメントが問題になるかもしれません。 –

関連する問題