繁体   English   中英

查询设计,临时表? 的MySQL

[英]Query design, temporary table? MySQL

我有两个表,用户和事件,我想从USERS表中选择例如6个用户,并按照事件日期的时间顺序列出所有事件

桌子设计:

USERS               EVENTS
user_id    >>>>     user_id
                    event_title
                    event_date

我是否将所有事件都选择到临时表中,然后使用“ order by”进行查询,还是在查询本身中有更有效的方法?

这将从用户表中选择六个任意用户,并获取所有事件:

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 ...检查正在使用的索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM