首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用别名的MySQL失败

使用别名的MySQL失败
EN

Stack Overflow用户
提问于 2022-02-03 12:21:59
回答 1查看 23关注 0票数 1

有三张桌子。

  • user_groups -用户群列表(admin,user,...)
  • permissions -系统使用时的权限列表,例如"access_user_management"
  • user_group_permissions -将用户组分配给权限)。例如,组"admin“具有权限"access_system”、"access_user_management“、"reset_system”,而组"user“仅具有权限access_user_management。

现在,我想加入这三个表,根据用户组ID获得权限列表。

代码语言:javascript
复制
SELECT user_groups.user_group_id, user_group_permissions.permission_id, user_groups.name, permissions.name
FROM user_groups 
INNER JOIN user_group_permissions 
    ON user_groups.user_group_id = user_group_permissions.user_group_id
INNER JOIN permissions
    ON user_group_permissions.permission_id = permissions.permission_id
WHERE user_groups.user_group_id = 1
ORDER BY user_groups.user_group_id

我的查询运行良好,但我想使用别名来简化。不幸的是化名不起作用。

代码语言:javascript
复制
SELECT user_groups.user_group_id, user_group_permissions.permission_id, user_groups.name, permissions.name
FROM user_groups ug
INNER JOIN user_group_permissions ugp
    ON ug.user_group_id = ugp.user_group_id
INNER JOIN permissions per
    ON ugp.permission_id = per.permission_id
WHERE ug.user_group_id = 2
ORDER BY ug.user_group_id

但是,会引发以下错误:

错误代码: 1054。“字段列表”中未知列“user_groups.user_group_id”.

这与我在教程中看到的别名语法完全相同。也尝试了as,但这也是不起作用的。

有人知道为什么化名不起作用吗?我使用的是MySQL社区服务器8.0.28。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-03 12:25:32

如果要为表使用别名,则必须将表名的每个实例替换为上述别名(当然,设置别名的位置除外)。

如下所示:

代码语言:javascript
复制
SELECT ug.user_group_id, ugp.permission_id, ug.name, per.name
FROM user_groups ug
    INNER JOIN user_group_permissions ugp
        ON ug.user_group_id = ugp.user_group_id
    INNER JOIN permissions per
        ON ugp.permission_id = per.permission_id
WHERE ug.user_group_id = 2
ORDER BY ug.user_group_id
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70971219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档