2012-03-13 2 views
1

私は2つのテーブル、ユーザー、イベントを持っています。 USERSテーブルから6人のユーザーとイベントの日付クエリ設計、テンポラリテーブル? MySQL

テーブルデザインの年代順にそのイベントをすべてリスト:

USERS    EVENTS 
user_id >>>>  user_id 
        event_title 
        event_date 

は私がすることによって順序」とそれを照会し、その後、一時テーブルにすべてのイベントを選択してくださいクエリ内でこれを行うより効率的な方法がありますか?

答えて

1

これは、ユーザーテーブルから6人の任意のユーザーを選択して、すべてのイベントを取得します:

SELECT user_id, event_title, event_date 
FROM EVENTS 
WHERE user_id IN 
(
    SELECT user_id 
    FROM USERS 
    LIMIT 6 
) 
ORDER BY event_date 

あなたは6人のあなたの希望条件に基づいて、特定のユーザーの代わりに、ちょうど最初の6選択するように副選択を変更する必要がありますMySQLは見つける。

これが効率的に実行されるように、インデックスを追加する必要があります。どのインデックスが使用されているかを調べるには、EXPLAIN SELECT ...を使用してください。

関連する問題