select teams.team_hk from sheet_stander 
join game_stander on sheet_stander.game_id = game_stander.id
join schedule on game_stander.sche_id = schedule.id
join teams on schedule.teamA = teams.id 
where sheet_stander.id = 1 
先确保选出来的是唯一记录

解决方案 »

  1.   

    联结查询出来的结果不唯一的,有多条,请问怎么通过循环查处所有记录?select team=
    case type
       when  1 then 
            (select teams.team_hk from sheet_stander 
    join game_stander on sheet_stander.game_id = game_stander.id
    join schedule on game_stander.sche_id = schedule.id
    join teams on schedule.teamA = teams.id 
    where sheet_stander.id = 1)--这个条件的结果有多条
       when  2 then 'b'
       when  3 then 'd'
       else 'no'
       end 
       from sheet_stander
    where schedule.state=0
      

  2.   

    select team=case a.type when 1 then b.team_hk
                            when 2 then 'b'
                            when 3 then 'd'
                            else 'no'
                end
    from sheet_stander a left join
         (  select 1 as tp,teams.team_hk from sheet_stander 
    join game_stander on sheet_stander.game_id = game_stander.id
    join schedule on game_stander.sche_id = schedule.id
    join teams on schedule.teamA = teams.id 
    where sheet_stander.id = 1
         ) b 
         on a.type=b.tp
    where  schedule.state=0
      

  3.   

    这个不用CASE
    team是@team吧
    还是不用CASE,直接分成多个select好些