2017-08-29 78 views
0

我正在开发这个系统,我有一个表的团队和一个超级明星。在球队表中我有这4列有外键引用超级明星表。如何计算同一个表中不同列中的外键?

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的任何建议?

回答

0

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

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) 
相关问题