如何单条SQL实现字段合并并关联表查询Name Surname与OS字段
需求说明
需要编写SQL查询,返回两列结果:
- 合并
user表name、surname字段得到的Name Surname - 设备表的
OS字段
表结构参考
单步逻辑参考
已验证的单字段查询、单表关联语句如下:
-- 合并姓名 SELECT concat(name,' ', surname) as 'Name Surname' FROM `user`;
-- 关联查询OS SELECT device.OS FROM `user` RIGHT JOIN device ON user.name = device.name;
整合实现方案
直接将两个需要返回的字段统一写在SELECT子句中,保留原有表关联逻辑即可,无需拆分两次查询。推荐给表设置别名简化写法,完整语句如下:
SELECT CONCAT(u.name, ' ', u.surname) AS 'Name Surname', d.OS AS 'OS' FROM `user` u RIGHT JOIN device d ON u.name = d.name;
补充说明:
- 如果你的设备表实际表名为需求中提到的
devices,将语句里的device替换为devices即可执行- 不建议使用
name字段作为两表关联条件,重名会导致数据匹配错误,生产环境建议使用user_id这类唯一主键/外键作为关联字段
内容的提问来源于stack exchange,提问作者Nick Seniytitch
相关产品推荐
相关产品推荐

