gpt4 book ai didi

mysql - 如何从一个表中选择行并按另一个表中的列的总和对其进行排序?

转载 作者:行者123 更新时间:2023-11-30 01:21:29 24 4
gpt4 key购买 nike

在 MySQL 中,我有两个表。首先是成员(member)。其次是成员(member)经验。 member_experience 表包含成员(member)获得的所有 XP 的值以及他们获得这些 XP 的原因。我想编写一个查询来选择成员并按他们的 XP 总数对结果进行排序。我编写的查询不会返回任何结果。

CREATE TABLE IF NOT EXISTS `members` (  `member_id` int(15) NOT NULL AUTO_INCREMENT,  `group_id` int(15) NOT NULL,  `display_name` text NOT NULL,  `email_address` text NOT NULL,  `password` text NOT NULL,  `status` tinyint(1) NOT NULL,  `activation_code` varchar(16) NOT NULL,  `date_joined` text NOT NULL  PRIMARY KEY (`member_id`)) ENGINE=InnoDB  DEFAULT CHARSET=latin1;CREATE TABLE IF NOT EXISTS `member_experience` (  `experience_id` int(15) NOT NULL AUTO_INCREMENT,  `member_id` int(15) NOT NULL,  `value` mediumint(6) NOT NULL,  `description` text NOT NULL,  `date_earned` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',  PRIMARY KEY (`experience_id`)) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

这是我当前的查询:

       SELECT          m.member_id,          xp.member_id, SUM(xp.value) AS total_xp       FROM members AS m       LEFT JOIN member_experience AS xp ON (xp.member_id = m.member_id)       ORDER BY total_xp";

最佳答案

这将完成这些事情:

SELECT
members.member_id,
total_xp.sum_xp
FROM
members
LEFT JOIN
(SELECT
member_id,
SUM(value) AS sum_xp
FROM
member_experience
GROUP BY
member_id) AS total_xp
ON members.member_id = total_xp.member_id
ORDER BY
total_xp.sum_xp

关于mysql - 如何从一个表中选择行并按另一个表中的列的总和对其进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481425/

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