gpt4 book ai didi

mysql - 慢 SQL IN 查询

转载 作者:行者123 更新时间:2023-11-30 21:41:52 25 4
gpt4 key购买 nike

我有以下查询。我需要一个表中的信息,但没有将这两个表链接在一起的键,而且没有一种方法可以从任何一个表中引用另一个表。

我的查询:

SELECT COUNT(*) 
FROM courses as c
WHERE c.StartYear = 2016
AND c.student_id IN (SELECT DISTINCT p.student_id
FROM programs AS p
WHERE p.StartYear = 2016
AND p.program_code NOT LIKE "M%")

此查询执行大约需要 5 秒,这太长了。有更好的方法吗?

服务器:MySQL服务器版本:5.6.35

最佳答案

这应该会给出完全相同的结果,并且可能会或可能不会更快,但确实表明目前您的查询确实表明这两个表可以关联通过 student_id

如果下面的查询在逻辑上不正确,那么您的示例查询也是如此,您应该给出一个虚拟示例来演示您想要的逻辑:https://stackoverflow.com/help/mcve

SELECT
COUNT(*)
FROM
courses c
INNER JOIN
(
SELECT
student_id,
startYear
FROM
programs
WHERE
program_code NOT LIKE "M%"
GROUP BY
student_id,
startYear
)
p
ON p.student_id = c.student_id
AND p.startYear = c.startYear
WHERE
c.StartYear = 2016

关于mysql - 慢 SQL IN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com