如何在 mysql 的 Group_concat 子查询中使用选择查询

阿夫舍克

我有3张桌子:

tbl_user 存储所有用户详细信息(用户 ID、姓名、地址)

user_id    name        address
1         a (shop)      home
2         b (shop)    bakerstreet
3         c (staff)   wallstreet
4         d (staff)    georgia
5         e (staff)    sydney

tbl_user_group 存储用户类型(user_id,user_type : 1=shop_owner,2=staff)

user_id    user_type
1             1
2             1
3             2
4             2
5             2

tbl_user_association 持有 shop_owner 和员工关系 (shop_owner_id, staff_id)

shop_owner_id    staff_id
1                3
1                4
1                5
2                3
2                4

想要的结果

我想显示员工名单和他们关联的各个商店,如下所示:

user_id    staff_name    shop_owner
3          c             a,b  
4          d             a,b
5          e             a

我尝试使用此处提到的 group_concat 查询如下:

SELECT
u.id                          AS user_id,
u.name                        AS staff_name,
(SELECT GROUP_CONCAT(u.name separator ',') FROM tbl_user u WHERE u.id = ua.shop_owner_id) AS 
shop_owner
FROM tbl_user u
JOIN tbl_user_group ug ON u.id = ug.user_id
LEFT JOIN tbl_user_association ua ON u.id = ua.staff_id
WHERE ug.user_type = 2
GROUP BY u.id

但它返回单排员工如下。我哪里错了?

user_id    staff_name  shop_owner
3              c        a
4              d        a
5              e        a
硫胺素

这就是我要做的:

SELECT
    u.user_id,
    u.name,
    GROUP_CONCAT( so.name )
FROM
    tbl_user_group ug
    INNER JOIN tbl_user u
        ON ( ug.user_id = u.user_id )
    INNER JOIN tbl_user_association ua
        ON ( ua.staff_id = u.user_id )
    INNER JOIN tbl_user so -- here join again the user table to get shop owners names
        ON ( ua.shop_owner_id = so.user_id )
WHERE
    ug.user_type = 2
GROUP BY
    u.user_id;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在MySQL,Group_Concat中处理这样的查询?

来自分类Dev

在mysql中使用GROUP_CONCAT选择查询

来自分类Dev

MySQL:在group_concat中使用concat时如何排序?

来自分类Dev

MySQL:在group_concat中使用concat时如何排序?

来自分类Dev

当我在查询中使用“ GROUP_CONCAT”和“ HAVING”时,如何计算MySQL结果?

来自分类Dev

来自子查询的MySQL GROUP_CONCAT

来自分类Dev

如何在查询中使用两列的GROUP_CONCAT

来自分类Dev

结合使用MYSQL GROUP_CONCAT和子查询

来自分类Dev

结合使用MYSQL GROUP_CONCAT和子查询

来自分类Dev

在 JOIN 查询中使用 Mysql GROUP_CONCAT

来自分类Dev

如何在group_concat中执行子查询

来自分类Dev

MySQL GROUP_CONCAT和IN查询

来自分类Dev

MySQL查询加入group_concat

来自分类Dev

如何在整个子查询上使用 group_concat?

来自分类Dev

如何使mysql Group_Concat与其他CONCAT信息一起使用?

来自分类Dev

mysql查询,我如何获得与GROUP_CONCAT的前5个下载

来自分类Dev

如何将逗号分隔的数字转换为整数mysql查询GROUP_CONCAT

来自分类Dev

mysql查询,我如何获得与GROUP_CONCAT的前5个下载

来自分类Dev

MySQL的group_concat与内部选择

来自分类Dev

使用IN与group_concat结果进行MySQL查询

来自分类Dev

MySQL对多个JOINS使用GROUP_CONCAT

来自分类Dev

使用group_concat更新mysql表

来自分类Dev

如何在使用GROUP_CONCAT的GROUP BY之后加入?

来自分类Dev

如何在group_concat中使用sum和joins

来自分类Dev

如何在Rails中使用GROUP_CONCAT?

来自分类Dev

如何在休眠条件中使用group_concat?

来自分类Dev

如何在group_concat中使用sum和joins

来自分类Dev

如何修复此查询?使用 GROUP_CONCAT

来自分类Dev

Mysql group_concat不允许在使用父字段的子查询中进行计数

Related 相关文章

热门标签

归档