MYSQL如果存在多行,如何确定parent_record的状态

时间:2017-05-16 19:00:40

标签: mysql

我有一个Mysql数据库,我需要将输出到前端[滚动类型]。我希望从查询输出中获取自定义列,而不是使用逻辑来迭代Java代码。

自定义规则:如果一个团队在最后一列中有一条或多条记录为“进行中”,则结果集应该为此团队提供“进行中”。

Table: Team_Counselling
 ------------------------------------------
 Team   | Player_name   |   Counselling_Status
 ------------------------------------------
Ginger  |    Alpha      |       Completed
Ginger  |    Beta       |       In Progress
Ginger  |    Gamma      |       In Progress
Lemon   |    Heth       |       Completed
Lemon   |    Kaph       |       Completed
Lemon   |    Lambda     |       Completed
Cardamon|    Omega      |       In Progress
Cardamon|    Sigma      |       In Progress
Cardamon|    Theta      |       In Progress
----------------------------------------------

所需的输出(如在查询结果中)

 ------------------------------
 Team   | counsellingTeamStatus
 ------------------------------
Ginger  | In Progress
Lemon   | Completed
Cardamon| In Progress

我尝试了以下查询,这无济于事。

    SELECT Team, 
      IF(Counselling_Status='In Progress', 'In Progress', 'Completed') as counsellingTeamStatus
    FROM team_counselling
    GROUP BY Team

请帮助我。

编辑:以下查询给了我预期的输出。但是,如果有更好的解决方案,那将非常有用。

SELECT Team
     , IF  ( INSTR ( GROUP_CONCAT(DISTINCT(Counselling_Status)) , 'In Progress'), 'In Progress', 'Completed') as counsellingTeamStatus  
  from team_counselling
group by Team;

1 个答案:

答案 0 :(得分:-1)

好像你想要一个简单的查询。如果[5, 0, 5] 列的唯一可能和已发生的值是前面提到的两个,那么以下查询就足够了:

Counselling_Status