我有很多棒球运动员。 他们参加过许多棒球比赛。 我希望在洋基队找到球员,并按他们的命中数量对其进行排序。 它们位于MySqlDatabase中。

基本结构如下:

[Players]
ID      Name      Team
1       Jim       Yankees
2       Bob       Yankees
3       Ted       Red Socks
4       Hal       Yankees
5       Tom       Dodgers


[Games]
ID     Player_Id     Hits
1      1             2
2      2             0 
3      3             3 
4      4             1 
5      5             2  
6      1             0
7      2             0 
8      3             1 
9      4             4 
10     5             1 
11     1             0
12     2             0 
13     3             1 
14     4             3 
15     5             1 

我在寻找结果

Hal      8
Jim      2
Bob      0

什么是查询?

===============>>#1 票数:2

这是我认为更好的解决方案:

SELECT p.Name, sum(Hits) as TotalHits
FROM Players p LEFT OUTER JOIN
     Games g
     on p.id = g.player_id
WHERE p.Team = 'Yankees'
GROUP BY p.id
ORDER BY TotalHits DESC;

我觉得这更好吗?

  • 在MySQL中,实现了子查询。 这导致不必要的开销。
  • 通过不使用实例化视图,MySQL就有了更好的机会使用索引进行联接。
  • 使用LEFT OUTER JOIN确保包括所有洋基球员,甚至不包括在“ Games表中的球员。

===============>>#2 票数:1 已采纳

SELECT playerName ,totalHits
FROM players p
INNER JOIN

(
SELECT player_ID,SUM(Hits) as totalHits
FROM games
GROUP BY player_ID
) as g

ON p.ID=g.player_ID
WHERE p.team='Yankees'
ORDER BY totalHits desc

  ask by JVMX translate from so

未解决问题?本站智能推荐:

1回复

通过不同表中的数据对mysql表进行排序

我必须使用mysql表并尝试显示table1的结果,但要按table2进行排序。 对于表2,我计算重复ID的所有出现次数,然后将结果降序显示。 下面是我能得到的,想知道是否可以通过单个查询完成。 “;
2回复

按ID和PHP-MySql中的相关答案对注释进行排序

我有一个MySql注释表。 该表中的一些注释是“简单”注释,其他一些是对注释的“答复” 。 该表包含一个“ id”字段和一个“答复”字段,以指示答复所引用的注释。 在下面的示例中,我有简单的注释1,4,7; 评论2、3、6是对1的回复; 评论5是对4的回复。 我的目标是在PHP
1回复

与mysql排序相关性匹配2个表中的多个单词

早上, 我在一个网站上有一个搜索栏,我正在对2个表和4列中的单词进行通配符搜索。 我想进行多个单词的搜索,因此我已将编码交换为match..against语句。 我的问题是订购相关产品。 目前,如果我搜索3个单词,我希望它首先显示具有这3个单词的产品,但似乎比第2个然后第3个优先
3回复

InnoDB表中MySQL全文的替换相关性排序?

我正在使用MySQL InnoDB,并希望在某些列上进行全文样式搜索。 按相关性顺序对结果进行排序的最佳方法是什么? 我正在尝试做类似的事情: 但是,一旦我开始搜索多于一列或使用多个关键字,这将变得非常复杂。 我已经发生了几次连接,因此简化了上面的查询。 谁能提出更好的方
2回复

通过3个表进行排序

您好我正在尝试对这3个表进行排序 我需要创建一个通过“作者”表的查询, 抓住作者编号 然后转到“ Wrote”表,从最后一个表的AuthorNum中查找“ BookCode” 然后,最后通过Book表列出该书的标题以及作者的名字和姓氏。 我当时在考虑使用联接表,但对
1回复

按列总和对MySQL表中的字段进行排序

我在一个表中有数据,其中的字段包含个人名称,行包含与他们对某项任务的贡献有关的数据。 例如: 第1个人的总和为13,而第2个人的总和为25。我希望结果以第2个人,第1个人的顺序显示。 我正在寻找对查询结果进行排序,以按每个人的总和(列总和)的顺序重新排列表字段(人的名字)
1回复

在mysql中对分组表进行正确排序

我目前陷入以下问题:我有两个表: 如何获得uid = 1的人的所有邮件,按mail.uid DESC排序并按person.uid分组? 我尝试了以下操作: 它确实将我的确切人数退还给我,但订购最新邮件无效。 任何人都可以让我知道如何解决这个问题? 谢谢,多米尼克
2回复

在MySQL中对两个表的联合结果集进行排序

我有两个表,它们在字段和数据上完全不同,但是我想从两个表中对数据进行排序。 为此,我使用了union子句,并且成功获取了结果集,但无法对数据进行排序。 我尝试了很多技巧,但失败了。 我的查询是- 结果是- 结果很好,但是您可以看到数据不是按数量排序,而是按表排序。 但
1回复

在MySQL的表中对字段进行排序

我有一组这样的数据: 我想使用函数/存储过程将“代码”列更改为以下内容: 或者,可能由于SELECT语句而将其抛出。 我该如何使用MySQL? 谢谢!!
2回复

如何对MySQL表中的记录/行进行重新排序

我有表,该表具有三列: ID , Name和ParentID 。 让我们考虑以下结构: 用户对行进行重新排序后,客户端的JavaScript将通过其ID发送带有行的新顺序的数组。 例如,可以为[4, 10, 2, 3, 11, 1] 。 我应该使用哪些查询/查询来更改MySQL