我想将 3 个查询合并为一个以便于访问
$query = "SELECT r.member_id, m.name, m.class, m.classid, m.level,m.guild_title, SUM(achie_points) total_pvp\n"
. "FROM roster_addons_achievements_achievements as r\n"
. "LEFT JOIN roster_addons_achievements_achie AS c \n"
. "ON r.achie_id = c.achie_id\n"
. "LEFT JOIN roster_members AS m\n"
. "ON r.member_id = m.member_id\n"
. "WHERE c.c_id = 95 OR c.p_id = 95\n"
. "GROUP BY r.member_id,m.name\n"
. "ORDER BY r.member_id ASC";
给我 c_id 95 和 p_id 95 的 SUM(achie_points)
$query2 = "SELECT r.member_id, SUM(achie_points) total_arena\n"
. "FROM roster_addons_achievements_achievements as r\n"
. "LEFT JOIN roster_addons_achievements_achie AS c \n"
. "ON r.achie_id = c.achie_id\n"
. "LEFT JOIN roster_members AS m\n"
. "ON r.member_id = m.member_id\n"
. "WHERE c.c_id = 165\n"
. "GROUP BY r.member_id,m.name\n"
. "ORDER BY r.member_id ASC";
给我 c_id 165 的 SUM(achie_points)
$query3 = "SELECT r.member_id, SUM(achie_points) total_rbg\n"
. "FROM roster_addons_achievements_achievements as r\n"
. "LEFT JOIN roster_addons_achievements_achie AS c \n"
. "ON r.achie_id = c.achie_id\n"
. "LEFT JOIN roster_members AS m\n"
. "ON r.member_id = m.member_id\n"
. "WHERE c.c_id = 15092\n"
. "GROUP BY r.member_id,m.name\n"
. "ORDER BY r.member_id ASC";
给我 c_id 15092 的 SUM(achie_points)
我遇到的结合 3 的问题是 c_id 95、165 和 15092 的 SUM(achie_points) 任何帮助将不胜感激。
最佳答案
$query = "SELECT r.member_id, m.name, m.class, m.classid, m.level,m.guild_title,
SUM(IF(c.c_id = 95 OR c.p_id = 95, achie_points, 0)) total_pvp,
SUM(IF(c.c_id = 165, achie_points, 0)) total_arena,
SUM(IF(c.c_id = 15092, achie_points, 0)) total_rbg
FROM roster_addons_achievements_achievements as r
LEFT JOIN roster_addons_achievements_achie AS c
ON r.achie_id = c.achie_id
LEFT JOIN roster_members AS m
ON r.member_id = m.member_id
WHERE c.c_id IN (95, 165, 15092) OR c.p_id = 95
GROUP BY r.member_id,m.name
ORDER BY r.member_id ASC";
关于php - mysql 将 3 个查询合并为 3 个类别的 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20823506/