繁体   English   中英

低效查询

[英]Inefficient Query

SELECT submissions.created_at, guests.accepted
FROM submission
INNER JOIN guests
ON guests.event_id = 1
ORDER BY submissions.created_at ASC;

当前,此查询需要花费很长时间才能运行(甚至可能无法返回所有内容)。 我要完成的工作:

给定特定的event_id(例如,事件1),抓取在……和guests.accepted(二者通过submission_id链接)中的字段submittings.created。

我的查询出了什么问题?

您忘记在查询中提供JOIN条件。 尝试这个:

SELECT submissions.created_at, guests.accepted
FROM submission s
INNER JOIN guests g on g.event_id = s.submissions_id
where guests.event_id = 1
ORDER BY submissions.created_at ASC;
SELECT submissions.created_at, guests.accepted
FROM submission
INNER JOIN guests
ON guests.(column to match against) = submissions.(column to match on)
where guests.event_id=1
ORDER BY submissions.created_at ASC;

正如这里许多其他人已经说过的那样,您的加入有点无聊。 它试图将来宾表中匹配的一行与提交列中的每一行连接起来。

您需要像这样进行加入:

Inner join guest on guest.event_id = submissions_id
where guest.event_id = 1

加入时,您需要加入来自不同表的两列(大多数时候是id列),您可以阅读MySQL示例以获得更多说明。 这是MySQL参考手册的链接

暂无
暂无

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

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