首页 > 解决方案 > 连接 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

标签: mysqlsql

解决方案


如果您使用的是 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 “”,如果你想在这个特定的例子中用空格分隔


推荐阅读