Mysql 在一个查询中获取所有WHERE案例
我有这个问题Mysql 在一个查询中获取所有WHERE案例,mysql,where,Mysql,Where,我有这个问题 SELECT users.name FROM users LEFT JOIN weapon_stats ON users.id = weapon_stats.zp_id WHERE weapon_stats.weapon = 26 ORDER BY weapon_stats.kills DESC LIMIT 1; 问题是y需要得到从1到30的结果,这很奇怪 是否可以在一个查询中获得所有结果 我想让每一个用户都能用每一件武器杀死最多的人 武器1 SELECT users.nam
SELECT users.name
FROM users
LEFT JOIN weapon_stats ON users.id = weapon_stats.zp_id
WHERE weapon_stats.weapon = 26
ORDER BY weapon_stats.kills DESC
LIMIT 1;
问题是y需要得到从1到30的结果,这很奇怪
是否可以在一个查询中获得所有结果
我想让每一个用户都能用每一件武器杀死最多的人
武器1
SELECT users.name
FROM users
LEFT JOIN weapon_stats ON users.id = weapon_stats.zp_id
WHERE weapon_stats.weapon = 01
ORDER BY weapon_stats.kills DESC
LIMIT 1;
武器2
SELECT users.name
FROM users
LEFT JOIN weapon_stats ON users.id = weapon_stats.zp_id
WHERE weapon_stats.weapon = 02
ORDER BY weapon_stats.kills DESC
LIMIT 1;
提前谢谢
select U.name, W.weapon, W.kills
FROM users U
INNER JOIN weapons W on W.zp_id = U.id
INNER JOIN
(SELECT WW.weapon, MAX(WW.kills) AS kills
FROM weapons WW
WHERE WW.weapon BETWEEN 1 AND 30
GROUP BY WW.weapon) K
ON W.kills = K.kills AND W.weapon = K.weapon
我相信通过优化可以加快速度,但这最终是可行的
我不确定你所说的“将位置从1更改为30”是什么意思,但请参见以下内容: […]其中wearpon_统计武器介于1和30之间
更多信息:除非我误解了你在寻找什么,否则你不能做以下事情吗
SELECT users.name
FROM users
LEFT JOIN weapon_stats ON users.id = weapon_stats.zp_id
WHERE weapon_stats.weapon BETWEEN 1 and 30
ORDER BY weapon_stats.kills DESC
LIMIT 1;
我需要得到每个查询的结果,从0到1。我不想做30个queryes(其中武器统计。武器=1,武器统计。武器=2,武器统计。武器=3)等等。。。
SELECT users.name
FROM users
LEFT JOIN weapon_stats ON users.id = weapon_stats.zp_id
WHERE weapon_stats.weapon BETWEEN 1 and 30
ORDER BY weapon_stats.kills DESC
LIMIT 1;