是否可以使用Laravel查询构建器在单个记录中获取两个不同列和不同行的值?

时间:2016-11-17 11:22:50

标签: php mysql laravel-query-builder

所以我试图在一个记录中获取两个不同列和不同行的值。

我有一个表ticket_thread,其中包含以下列

  • id
  • ticket_id是引用票证表的外键,它有助于代理和客户端在票证上完成所有会话线程/回复。
  • user_id显示已在故障单上回复的用户的ID
  • title显示票证的标题,通常只有第一条记录具有值
  • is_internal评论用于区分团队评论(值= 1)和代理或客户回复(值= 0)
  • updated_at on显示对故障单进行回复的日期

enter image description here

现在我希望为每个票证都有一条记录,其中包含会话标题,已创建最新票据回复的用户的ID以及回复时间,前提是回复不得为内部注释。

所以对于上面的例子我的结果就像

enter image description here

有可能吗?

请帮助我查询获取所需结果的查询,如果可能,请分享相同的laravel查询代码。

TIA

1 个答案:

答案 0 :(得分:0)

使用group by和group concat

SELECT 
  `Ticket ID`, 
  substring_index(group_concat(`User ID` order by `Replied on` desc) , ',', 1) as `User ID`,
  substring_index(group_concat(if (`Conversation Title` ='', null, `Conversation Title`) order by `Replied on` desc) , ',', 1) as `Conversation Title`,
  MAX(`Replied on`) 
FROM `table` 
GROUP BY `Ticket ID`