mysql - 连接 2 个表时 1 列中有多个值
问题描述
表 1 - 雇员
id empname
--------------
1 andy
2 brady
表 2 - 员工电话号码
id number empid
----------------
1 1111 1
2 2222 2
3 3333 1
4 4444 1
需要一个sql查询来显示如下
id empname numbers
------------------
1 andy 1111,3333,4444
2 brady 2222
解决方案
如果您使用的是 MySQL,则可以使用 GROUP_CONCAT 函数,它基本上连接组成组的每个值。你可以试试这个:
SELECT EMP.ID,
EMP.EMPNAME,
GROUP_CONCAT(EPH.NUMBER) AS NUMBERS
FROM EMPLOYEE EMP
JOIN EMPLOYEE_PHONE EPH
ON EMP.ID = EPH.EMPID
GROUP BY EMP.ID
此外,如果你想用不同的“,”来分隔你的值,你可以在组 concat 内的列之后添加语法 SEPARATOR “”,如果你想在这个特定的例子中用空格分隔
推荐阅读
- laravel - InvalidArgumentException Route [login] 未定义。在 Laravel 5.6 中
- javascript - 三个 JS OBJloader - obj 没有正确导入
- go - 如何在 Go 语言中获取指定时区的 Hour()?
- mysql - 创建一个视图,其中来自同一列的 2 条记录位于同一行
- git - Git - rm:无法识别的选项`--cached'
- sql - 使用计算值更新 psql 表
- python-3.x - contextlib 偶尔会失败
- java - Java不同步线程,这个答案怎么会出现,怎么解释
- javascript - 如何通过输入提供“获取目录链接”
- java - Hibernate 不使用 Id 来查找实体