【问题标题】:How to select two columns(foreign key) value and make its match with a primary key (they have the same primary key) MYSQL如何选择两列(外键)值并将其与主键匹配(它们具有相同的主键)MYSQL
【发布时间】:2023-01-10 16:37:14
【问题描述】:

我有 2 张桌子,一支球队和一场比赛。

团队:

ID Team_name
1 PSG
2 OM

ID是主键

火柴

ID_team_home ID_team_away goal_team_home goal_team_away
1 2 5 4
2 1 6 1

ID_team_home 和 ID_team_away 是外键。 我的目标是一个查询,它不创建表,而只是选择团队所有目标的总和

Team_name Team_goals
PSG 6
OM 10

请帮忙

我尝试了很多解决方案,我使用了 sum、join、case when、if、subqueries 没有任何效果请帮忙。 大多数时候它只是将两行相加并给我一个完全不准确的答案。

SELECT team.team_name, SUM(matchs.goal_team_home) as BPe, CASE WHEN matchs.ID_team_home=team.id THEN SUM(matchs.goal_team_home) WHEN matches.ID_team_away=equipe.id THEN SUM(matchs.goal_team_away) END 作为比赛测试,团队 WHERE matchs.ID_team_home=team.id 或 matchs.ID_team_away=team.id GROUP BY equipe.Equipes 分组
ORDER BY 测试

【问题讨论】:

    标签: mysql sqlite phpmyadmin


    【解决方案1】:

    我们可以使用结合外部聚合的联合方法:

    SELECT t1.Team_name, SUM(t2.goal_team) AS Team_goals
    FROM Team t1
    INNER JOIN
    (
        SELECT ID_team_home AS ID_team, goal_team_home AS goal_team FROM Matches
        UNION ALL
        SELECT ID_team_away, goal_team_away FROM Matches
    ) t2
        ON t2.ID_team = t1.ID
    GROUP BY t1.Team_name
    ORDER BY t1.Team_name;
    

    联合将所有团队/目标内联到两列中。然后,我们按团队汇总该中间结果以获得团队目标。

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2015-09-18
      相关资源
      最近更新 更多