0

所以,我试图从两个表中提取数据。我需要第一个表中的每个唯一行Tickets成为结果集中的唯一行。每个工单在表中可能有多个与之关联的工单标签TicketsTags

当我运行以下查询时,我会为每个唯一的“tagid”获得一行:

select 
 `Tickets`.`id`,
 `TicketsTags`.`tagid` 
from 
 `Tickets` left join `TicketsTags`
on 
 `TicketsTags`.`ticketid` = `Tickets`.`id`
where 
 `Tickets`.`id` = 1

回报:

id | tagid
----------
1  | 1
1  | 2

如何将每个 tagid 作为它自己的列“附加”,或创建一个数组?所以我以这个结束:

id | tag1 | tag2
----------------
1  | 1    | 2

谢谢你的时间。

4

2 回答 2

1
select 
`Tickets`.`id`,
GROUP_CONCAT(`TicketsTags`.`tagid`) as 'TagsID' 
from 
`Tickets` left join `TicketsTags`
on 
`TicketsTags`.`ticketid` = `Tickets`.`id`
where 
`Tickets`.`id` = 1
GROUP BY `Tickets`.`id`
于 2013-04-14T02:34:02.790 回答
0

知道了,

select `Tickets`.`id`, group_concat(`TicketsTags`.`tagid`) from `Tickets` left join `TicketsTags` on `TicketsTags`.`ticketid` = `Tickets`.`id` where `Tickets`.`id` = 12 group by `Tickets`.`id`

利用group_concatgroup by返回与票证 ID 相关的每个 tagid 的逗号分隔字符串。

谢谢!

于 2013-04-14T02:31:53.113 回答