简体   繁体   English

如何使用别名以及聚合或合并

[英]How to use Alias and aggregate or concat

1 user has multiple records in tbl_activity and there is diplay_name, I would like to concat all of them il a columns name activity_name 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'

In MySQL (which is suggested by your syntax), you can use group_concat() . 在MySQL中(语法建议),您可以使用group_concat() I don't know which fields you care about but it is something like this: 我不知道您关心哪个领域,但这是这样的:

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;

Looks like it's MySQL syntax and so you can use GROUP_CONCAT() for this purpose 看起来像是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';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM