2010-12-10 99 views
0

我正在學習使用mysql.So,我遇到了一些問題。Mysql查詢優化搜索記錄!

我有三個表: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

如果您只想查看用戶在特定日期觀看過哪些電影,爲什麼要進行左連接?

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 

假設,當然,用戶不能觀看過不中你的數據庫中存在的電影......

+0

我發現您的查詢仍然環!EXPLAIN的報道moviewh的所有記錄類型是「ALL」 – qinHaiXiang 2010-12-10 03:35:01