2017-02-20 5 views
0

なぜ私はこのクエリで欲しい注文を得ていないのですか?間違った注文を返すSQLクエリ

SELECT 
     e_name, 
     a_shortcut, 
     GROUP_CONCAT(case 
      when t_rank = 1 then a_shortcut 
      when t_rank = 2 then a_shortcut 
      when t_rank = 3 then a_shortcut 
      end separator ',') as group_con 
     FROM team 
     INNER JOIN event 
     ON team.EID = event.eid 
     WHERE e_type = 'nonsport' 
     GROUP BY event.eid ORDER BY t_rank 

このクエリは、私がt_rankを入力するといつもランダムな順序を与えます。それは私に1,2,3秩序を与えているのではなく、むしろ私を常にランダムにしています。誰かが私を助けることができますpls?ここで

は私に

{"nresults":[{"e_name":"Musical Festival - Song Composition","First":"2nd", 
"Second":"1st", 
"Third":"3rd"}]} 

を与えている結果であり、ここで私が今働いてしまった私の予想出力

{"nresults":[{"e_name":"Musical Festival - Song Composition","First":"1st", 
"Second":"2nd", 
"Third":"3rd"}]} 

enter image description here

+0

GROUP_CONCAT内のセパレータの前に終了した後、ORDER BY句を動かしますか?私はjsonでそれを解析しています – orange

+0

私は先生に従っていません – orange

+2

group_concatが注文されていないということなら、order by節でgroup_concatを使うべきですか?サンプルデータは素晴らしいでしょう。 –

答えて

0

OKです。みんな、ありがとう。

select 
       e_name, 
       a_shortcut, 
       GROUP_CONCAT(case 
       when t_rank = 1 then a_shortcut 
       when t_rank = 2 then a_shortcut 
       when t_rank = 3 then a_shortcut 
       end order by t_rank separator ',') as group_con 
      from 
       team inner join event on team.EID = event.eid Where e_type = 'nonsport' 
group by event.eid 

私はちょうど私がこの先生を固定しない方法

関連する問題