【问题标题】:How to count foreign keys in different columns from the same table?如何计算同一张表中不同列的外键?
【发布时间】:2017-08-29 03:58:08
【问题描述】:

我正在开发这个系统,我为球队准备了一张桌子,为超级明星准备了一张桌子。在 team 表中,我有这 4 列具有引用 superstars 表的外键。

Table Teams Picture

我的目标是知道谁是球队中被选中最多的超级巨星。目前我正在使用 4 个代码并手动汇总结果。

我正在使用的代码:

SELECT superstars.name,COUNT(superstar01) FROM smackdown_teams JOIN superstars on smackdown_teams.superstar01 = superstars.id GROUP by superstar01 Order by COUNT(superstar01) desc;
SELECT superstars.name,COUNT(superstar02) FROM smackdown_teams JOIN superstars on smackdown_teams.superstar02 = superstars.id GROUP by superstar02 Order by COUNT(superstar02) desc;
SELECT superstars.name,COUNT(superstar03) FROM smackdown_teams JOIN superstars on smackdown_teams.superstar03 = superstars.id GROUP by superstar03 Order by COUNT(superstar03) desc;
SELECT superstars.name,COUNT(superstar04) FROM smackdown_teams JOIN superstars on smackdown_teams.superstar04 = superstars.id GROUP by superstar04 Order by COUNT(superstar04) desc;

关于我如何知道谁是最挑选的 Id 的任何建议?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以合并结果并找到结果的最大值。

    select max(superstar)
    (SELECT superstars.name,COUNT(superstar01) as superstar FROM smackdown_teams JOIN superstars on smackdown_teams.superstar01 = superstars.id GROUP by superstar01 Order by COUNT(superstar01) desc
    UNION
    SELECT superstars.name,COUNT(superstar02) as superstar FROM smackdown_teams JOIN superstars on smackdown_teams.superstar02 = superstars.id GROUP by superstar02 Order by COUNT(superstar02) desc)
    

    【讨论】:

      猜你喜欢
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      相关资源
      最近更新 更多