Дизайн запроса, временная таблица?MySQL - PullRequest
1 голос
/ 13 марта 2012

У меня есть две таблицы: пользователи и события, и я хочу выбрать, например, 6 пользователей из таблицы ПОЛЬЗОВАТЕЛЕЙ и перечислите все их события в хронологическом порядке даты события

дизайн стола:

USERS               EVENTS
user_id    >>>>     user_id
                    event_title
                    event_date

Я выбираю все события во временную таблицу, а затем запрашиваю это с помощью "order by" или есть более эффективный способ сделать это в самом запросе?

1 Ответ

1 голос
/ 13 марта 2012

Это выберет шесть произвольных пользователей из вашей таблицы пользователей и извлечет все их события:

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

Вы должны изменить подвыбор, чтобы выбрать шесть конкретных пользователей на основе ваших желаемых критериев, а не только первые шесть, которые найдет MySQL.

Вы должны добавить индексы, чтобы обеспечить их эффективную работу. Используйте EXPLAIN SELECT ..., чтобы проверить, какие индексы используются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...