1个用户在tbl_activity中有多条记录,并且有diplay_name,我想将所有这些记录连成一列名称activity_name
SELECT *
FROM `tbl_user`
INNER JOIN `tbl_user_authassignment`
ON `tbl_user`.`id` = `tbl_user_authassignment`.`userid`
INNER JOIN `tbl_activity`
`tbl_activity`.`id` AS 'activityid'
ON `tbl_user`.`id` = `tbl_activity`.`vendor_id`
WHERE `tbl_user_authassignment`.`itemname` = 'vendor'
答案 0 :(得分:0)
在MySQL(由您的语法建议)中,您可以使用group_concat()
。我不知道你关心哪些领域,但它是这样的:
SELECT u.*, group_concat(a.acitvityid) as activityids
FROM `tbl_user` u INNER JOIN
`tbl_user_authassignment` ua
ON u.`id` = ua.`userid` INNER JOIN
`tbl_activity` a
ON u.`id` = a.`vendor_id`
WHERE ua`.`itemname` = 'vendor'
GROUP BY u.id;
答案 1 :(得分:0)
看起来是MySQL
语法,因此您可以将GROUP_CONCAT()
用于此目的
SELECT tu.*,
xx.`id` AS 'activityid',
xx.activity_name
FROM `tbl_user` tu
INNER JOIN `tbl_user_authassignment` tua
ON tu.`id` = tua.`userid`
INNER JOIN (
select `vendor_id`,
`id`,
group_concat(diplay_name) as activity_name
from `tbl_activity`
group by `vendor_id`) xx ON tu.`id` = tua.`vendor_id`
WHERE tua.`itemname` = 'vendor';