当前位置:  开发笔记 > 编程语言 > 正文

SQL FROM子句缺少错误

如何解决《SQLFROM子句缺少错误》经验,为你挑选了1个好方法。

我刚刚开始学习SQL,并遇到了绊脚石.我有一些看起来像这样的代码:

SELECT player, SUM(wins) from (
    SELECT win_counts.player, win_counts.wins
    from win_counts
    UNION
    SELECT lose_counts.player, lose_counts.loses
    from lose_counts
    group by win_counts.player
) as temp_alias

这是我得到的错误:

错误:缺少表"win_counts"的FROM-clause条目第7行:按win_counts.player分组

此win_counts表包含玩家ID列表以及他们拥有的匹配数.lose_counts表包含玩家ID列表以及丢失的匹配数.最终我需要一个玩家ID表和每个玩家所玩的比赛总数.

感谢您的帮助.对不起,我没有更多的信息.​​..我对sql的理解非常简陋.



1> xQbert..:

分组似乎在错误的地方.

SELECT player, SUM(wins) as SumWinsLoses
FROM(
    SELECT win_counts.player, win_counts.wins
    FROM win_counts

    UNION ALL -- as Gordon points out 'ALL' is likely needed, otherwise your sum will be 
              -- off as the UNION alone will distinct the values before the sum
              -- and if you have a player with the same wins and losses (2), 
              -- the sum will return only 2 instead of (4).
    SELECT lose_counts.player, lose_counts.loses
    FROM lose_counts) as temp_alias
 GROUP BY player

我们很清楚,虽然SUm(Wins)将总和输赢,因为"胜利"字段联盟中的第一个名称是使用的名称.因此,球员的胜负将被汇总.

这是一个有效的SQL FIddle 通知,没有联合所有......玩家#2的计数不正确.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有