MySQL is doing a full table screen

188 Views Asked by At

I am trying to figure out why the following SQL has a type of ALL for the categories c table.

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

The todos table has an index on category_id and todo_id is a primary key. The category_id column in the categories table is a primary key.

The EXPLAIN lists PRIMARY as a possible key for the categories table but it isn't using it.

Thanks.

1

There are 1 best solutions below

2
On BEST ANSWER

It's simple. Your query selects all data from your tables. If you add the WHERE statement everything be fine.