从Subquery中检索Muliple列

时间:2017-09-08 06:40:33

标签: mysql sql subquery in-clause

我有一个表任务和另一个表master_employee

我试图列出一些任务细节以及一个将被解析为json对象的String

   SELECT task_name,assignees,priority,
   DATE_FORMAT(due_date, "%M %d %Y") as due_date ,

  (select GROUP_CONCAT(CONCAT('{ id:"',emp_id, '",name:"',first_name ,'"}')) as list 
   from master_employee where emp_id in(2925,2913))  as list 
   FROM tasks
   where task_id=4189

我所指的字符串是列别名' list' 。所以问题是,因为我们知道子查询不返回多个值,查询只返回一个emp_id的连接值。我希望,例如在这种情况下连接的emp_id&#2929和2913的值

1 个答案:

答案 0 :(得分:1)

可能你没有GROUP BY子句使用GROUP_CONCAT函数。如果你没有适合组的字段,那么只需使用group by,例如1或'1'

SELECT task_name,assignees,priority,
DATE_FORMAT(due_date, "%M %d %Y") as due_date , (
  select GROUP_CONCAT(CONCAT('{ id:"',emp_id, '",name:"',first_name 
  ,'"}')) as list 
  from master_employee where emp_id in(2925,2913)
  GROUP BY '1'
) as list 
FROM tasks
where task_id=4189