MySQL には 2 つのテーブルがあります。まずはメンバーです。2 つ目は member_experience です。member_experience テーブルには、メンバーが獲得したすべての XP の値と、それを獲得した理由が含まれています。メンバーを選択し、結果を xp の合計で並べ替えるクエリを作成したいと考えています。私が書いたクエリは結果を返しません。
CREATE TABLE IF NOT EXISTS `members` ( `member_id` int(15) NOT NULL AUTO_INCREMENT, `group_id` int(15) NOT NULL, `display_name` テキスト NOT NULL, `email_address` テキスト NOT NULL, `password` テキスト NOT NULL, `status` tinyint(1) NOT NULL, `activation_code` varchar(16) NOT NULL, `date_joined` テキスト NOT NULL 主キー (`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` テキスト NOT NULL, `date_earned` タイムスタンプ NOT NULL DEFAULT '0000-00-00 00:00:00', 主キー (`experience_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
これは私の現在のクエリです:
選択する m.member_id、 xp.member_id、SUM(xp.value) AS total_xp FROM メンバー AS m LEFT JOIN member_experience AS xp ON (xp.member_id = m.member_id) ORDER BY total_xp";