Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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中相关表总数的排序_Mysql - Fatal编程技术网

基于mySql中相关表总数的排序

基于mySql中相关表总数的排序,mysql,Mysql,我有很多棒球运动员。他们参加了许多棒球比赛。我希望找到洋基队的球员,并根据他们的命中率排序。它们位于MySqlDatabase中 以下是基本结构: [Players] ID Name Team 1 Jim Yankees 2 Bob Yankees 3 Ted Red Socks 4 Hal Yankees 5 Tom Dodgers [Games] I

我有很多棒球运动员。他们参加了许多棒球比赛。我希望找到洋基队的球员,并根据他们的命中率排序。它们位于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

<什么是查询?

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

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
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;
<> P> >我认为什么更好?

  • 在MySQL中,子查询是具体化的。这会导致不必要的开销
  • 通过不使用物化视图,MySQL有更好的机会为连接使用索引
  • 使用
    左外联
    保证所有洋基球员都会被包括在内,即使那些不在
    游戏
    表中的球员也会被包括在内

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

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;
<> P> >我认为什么更好?

  • 在MySQL中,子查询是具体化的。这会导致不必要的开销
  • 通过不使用物化视图,MySQL有更好的机会为连接使用索引
  • 使用
    左外联
    保证所有洋基球员都会被包括在内,即使那些不在
    游戏
    表中的球员也会被包括在内

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

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;
<> P> >我认为什么更好?

  • 在MySQL中,子查询是具体化的。这会导致不必要的开销
  • 通过不使用物化视图,MySQL有更好的机会为连接使用索引
  • 使用
    左外联
    保证所有洋基球员都会被包括在内,即使那些不在
    游戏
    表中的球员也会被包括在内

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

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;
<> P> >我认为什么更好?

  • 在MySQL中,子查询是具体化的。这会导致不必要的开销
  • 通过不使用物化视图,MySQL有更好的机会为连接使用索引
  • 使用
    左外联
    保证所有洋基球员都会被包括在内,即使那些不在
    游戏
    表中的球员也会被包括在内

您是否尝试生成这些结果?请用你的尝试编辑问题。从球员中选择*,其中团队=”洋基队”按总和排序(游戏。点击);这显然是错误的。你有没有尝试产生这些结果?请用你的尝试编辑问题。从球员中选择*,其中团队=”洋基队”按总和排序(游戏。点击);这显然是错误的。你有没有尝试产生这些结果?请用你的尝试编辑问题。从球员中选择*,其中团队=”洋基队”按总和排序(游戏。点击);这显然是错误的。你有没有尝试产生这些结果?请用你的尝试编辑问题。从球员中选择*,其中团队=”洋基队”按总和排序(游戏。点击);这显然是错误的。嗨,这类技术有没有一个特定的名称,我们将视图与表连接?嗨,这类技术有没有一个特定的名称,我们将视图与表连接?嗨,这类技术有没有一个特定的名称,我们将视图与表连接?嗨,这种技术是否有一个特定的名称,我们将一个视图与一个表连接起来??为什么在SQL Server中,这会抛出列p.name not in group by或aggregate function error,而在mysql中则不是这样。。。它是否改变了聚合结果的含义。。mysql允许select子句和GROUPBY子句中的任何列列表。。。如果你能在编辑答案时解释一下,那会很有帮助。为什么在SQL Server中会抛出p.name列not in group by或aggregate function error,而在mysql中却不是这样。。。它是否改变了聚合结果的含义。。mysql允许select子句和GROUPBY子句中的任何列列表。。。如果你能在编辑答案时解释一下,那会很有帮助。为什么在SQL Server中会抛出p.name列not in group by或aggregate function error,而在mysql中却不是这样。。。它是否改变了聚合结果的含义。。mysql允许select子句和GROUPBY子句中的任何列列表。。。如果你能在编辑答案时解释一下,那会很有帮助。为什么在SQL Server中会抛出p.name列not in group by或aggregate function error,而在mysql中却不是这样。。。它是否改变了聚合结果的含义。。mysql允许select子句和GROUPBY子句中的任何列列表。。。如果你能在编辑你的答案时解释一下,那将很有帮助。。