MySQL查询:匹配ID显示角色名,隐藏冗余ID字段
解决MySQL关联查询时隐藏冗余字段的问题
你之前使用SELECT *会返回关联表的所有字段,包括冗余的role_id和roles.id,要得到你想要的结果,核心是明确指定需要查询的字段,而不是用通配符*,同时给字段设置合适的别名。
正确的SQL语句
SELECT employee.id, employee.first_name, roles.title AS role FROM employee JOIN roles ON employee.role_id = roles.id;
代码说明
- 指定需要的字段:只列出你需要展示的
employee.id、employee.first_name和roles.title,自动排除冗余的role_id和roles.id - 字段别名:用
AS role将roles.title的列名改为role,完全匹配你想要的结果格式 - 关联方式:使用
JOIN(等同于INNER JOIN)只会返回存在对应角色的员工记录;如果需要包含未分配角色的员工,可以替换为LEFT JOIN
简化写法(表别名)
为了让SQL更简洁,可以给表设置别名:
SELECT e.id, e.first_name, r.title AS role FROM employee e JOIN roles r ON e.role_id = r.id;
内容的提问来源于stack exchange,提问作者Shades
相关产品推荐
相关产品推荐

