【问题标题】:Subselect Column Invalid issue子选择列无效问题
【发布时间】:2010-02-22 12:49:04
【问题描述】:

我在子选择中遇到列名的 sql 问题,我猜是因为它尚未分配该名称,但我不知道如何重新排列它。

select Distinct Captains.Name, Captains.Team, (select count(Winners.Name) from (select HomeTeamCaptain As Name from fixture where fixture.HomeTeamCaptain = Captains.Name And fixture.matchResult = fixture.HomeTeam UNION ALL select AwayTeamCaptain As Name from fixture where fixture.AwayTeamCaptain = Captains.Name And fixture.matchResult = fixture.AwayTeam) As Winners) As Winners From (select fixture.HomeTeamCaptain As Name, HomeTeam As Team From fixture UNION ALL select fixture.AwayTeamCaptain As Name, AwayTeam As Team From fixture) As Captains order by Name;

“Captains.Name”是我需要它来运行 Count - Subselect 但无法获取其值的问题!

【问题讨论】:

  • 嗨史蒂夫,请添加一些换行符,这是不可读的。

标签: sql mysql select subquery


【解决方案1】:

这对我有用:

select distinct Captains.Name, Captains.Team, 
    (select count(*)  
     from fixture 
     where 
        --I changed this a bit
        (fixture.HomeTeamCaptain = Captains.Name And
         fixture.matchResult = fixture.HomeTeam) 
     OR
        (fixture.AwayTeamCaptain = Captains.Name And 
         fixture.matchResult = fixture.AwayTeam)
    ) As Winners

FROM (select fixture.HomeTeamCaptain As Name, HomeTeam As Team 
     from fixture 
     UNION ALL 
     select fixture.AwayTeamCaptain As Name, AwayTeam As Team 
     from fixture) AS Captains
order by Captains.Name;

您应该考虑创建一个 Captains 表并通过 Id 引用“Home”和“Away”船长。

【讨论】:

  • 谢谢我把它复杂化了我知道我现在哪里出错了!甜!
猜你喜欢
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
  • 2013-09-23
相关资源
最近更新 更多