首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相同表的MySQL子查询

使用相同表的MySQL子查询
EN

Stack Overflow用户
提问于 2015-03-26 18:35:22
回答 1查看 870关注 0票数 0

我试图使用列==列所在的子查询从同一个表中检索一些ID。

代码语言:javascript
复制
SELECT 
`assemblies`.`id`,
`assemblies`.`type`,
`assemblies`.`champion`,
`assemblies`.`name`,
`assemblies`.`author`,
`assemblies`.`githubLastmod`,
(assemblies.forum IS NOT NULL) AS forumExists,
(SELECT GROUP_CONCAT(`champion`) FROM `assemblies` WHERE `githubFolder` = `githubFolder`) AS champions,
(SELECT COUNT(*) FROM `votes` WHERE `assembly` = `assemblies`.`id`) AS votesCount,
(SELECT COUNT(*) FROM `install_clicks` WHERE `assembly` = `assemblies`.`id`) AS installCount,
(SELECT COUNT(*) FROM `github_clicks` WHERE `assembly` = `assemblies`.`id`) AS githubCount,
(SELECT COUNT(*) FROM `forum_clicks` WHERE `assembly` = `assemblies`.`id`) AS forumCount,
(SELECT COUNT(*) FROM `broken_assemblies` WHERE `assembly` = `assemblies`.`id` AND `ip` = '192.168.10.1') AS isBroken,
(SELECT COUNT(*) FROM `votes` WHERE `assembly` = `assemblies`.`id` AND `ip` = '192.168.10.1') AS isUpvoted
FROM
`assemblies`
WHERE
`assemblies`.`type` = 'champion'
    AND `assemblies`.`champion` = '84'
    AND UNIX_TIMESTAMP(DATE(assemblies.githubLastmod)) > '1419617372'
ORDER BY `votesCount` DESC , `githubLastmod` DESC

本部分:

代码语言:javascript
复制
(SELECT GROUP_CONCAT(`champion`) FROM `assemblies` WHERE `githubFolder` = `githubFolder`) AS champions,

这将从所有行返回champion,如果champion匹配,则只需要githubAddress。

(我尽我所能向你解释,如果你需要更多的信息,请评论)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-26 19:56:17

我们需要GROUP BY githubFolder而不是WHERE githubFolder = githubFolder

如果我们单独执行,它将完全符合我们在这里想要实现的目标。

代码语言:javascript
复制
(SELECT GROUP_CONCAT('champion') FROM assemblies GROUP BY githubFolder) AS champions

但是,如果这将作为子查询执行,则会在返回多行时抛出错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29286290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档