【发布时间】:2025-12-18 11:25:01
【问题描述】:
我正在尝试在 MySQL 查询的 SELECT 子句中执行相关子查询。如何在我的子查询的WHERE 子句中使用另一列中的行的值?
我一直在参考 this webpage 的“相关子查询示例”部分,但由于某种原因,我的查询无法正常工作。
这是我的代码:
SELECT Year,
( SELECT COUNT(*)
FROM systems
WHERE SYSTEMTYPE = 'handheld' AND Year = sys.Year
) as handheld,
( SELECT COUNT(*)
FROM systems
WHERE SYSTEMTYPE = 'console' AND Year = sys.Year
) as console,
FROM systems as sys
WHERE Year IS NOT NULL
基本上,我正在尝试创建一个表格,显示每年创建的每种类型的系统数量。当我在 MySQL Workbench 中运行该查询时,它会一直运行到数据库连接到期。我看不出这个查询与我引用的网站上的查询有何不同。
任何帮助将不胜感激!如果似乎有更好的方法可以解决这个问题,我也对这些想法持开放态度。谢谢!
【问题讨论】:
-
systems表的索引是否正确? -
您的系统表中有多少行?
-
@zedfoxus 大约 5300 行。
-
我很惊讶查询需要这么长时间!
-
你可以看看this的帖子
标签: mysql sql select correlated-subquery