如何计算同一个表中不同列中的外键?
问题描述:
我正在开发这个系统,我有一个表的团队和一个超级明星。在球队表中我有这4列有外键引用超级明星表。如何计算同一个表中不同列中的外键?
我的目标是要知道谁是球队最挑超级巨星。目前,我正在使用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的任何建议?
答
您可以合并结果并查找结果的最大值。
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)