Mysql查询优化搜索记录!

时间:2010-12-10 03:27:41

标签: mysql optimization join

我正在学习使用mysql.So,我遇到了一些问题。

我有三张桌子:users movie and movie watching history(moviewh)

movie表的结构是:

movie_id[key]  movie_title

users是:

user_id[key] user_name

和moviewh是:

user_id[key] movie_id[key] watching_date[key]

我的SQL查询是:

EXPLAIN
SELECT m.movie_id,m.movie_name_cn FROM movie AS m
LEFT JOIN moviewh AS mwh  
ON m.movie_id = mwh.movie_id
WHERE date_format(mwh.watching_date,'%Y-%m-%d') = '2010-11-01' AND mwh.user_id = 1

alt text

所以。我该如何优化表和查询?

1 个答案:

答案 0 :(得分:1)

如果您只想查看用户在特定日期观看的电影,您为什么要进行左连接?

SELECT m.movie_id,m.movie_name_cn 
FROM movie AS m, moviewh AS mwh  
WHERE m.movie_id = mwh.movie_id
      AND date_format(mwh.watching_date,'%Y-%m-%d') = '2010-11-01' 
      AND mwh.user_id = 1

当然假设用户无法观看数据库中不存在的电影...