所以,我正试图从两个表中提取数据。我需要第一个表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
感谢您的时间。
答案 0 :(得分: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`
答案 1 :(得分: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_concat
和group by
会返回与故障单ID相关的每个tagid的逗号分隔字符串。
谢谢!