Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在一个查询中获取所有WHERE案例_Mysql_Where - Fatal编程技术网

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;