Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 连接2个表时,1列中有多个值_Mysql_Sql - Fatal编程技术网

Mysql 连接2个表时,1列中有多个值

Mysql 连接2个表时,1列中有多个值,mysql,sql,Mysql,Sql,表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 如果您使用SQL

表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

如果您使用SQL SERVER,我认为这将为您提供帮助,如果不是,可能是没有数据的猜测。但是我使用了STUFF,选择了
编号
,并按
将其拆分,然后订购

SELECT 
   t1.ID,t2v1.empname,
   STUFF((SELECT ',' + t2v2.number
          FROM Table2 t2v2
          WHERE t2v2.ID = t2v1.ID
          ORDER BY number
          FOR XML PATH('')), 1, 1, '') [numbers]
FROM Table1 t1 
inner join table2 t2v1 on t1.id = t2v1.id
GROUP BY t1.ID, t1.Name
ORDER BY 1
试试这个:

 SELECT e.id, e.name, CONCATENATE(ep.number, ',') as phonelist 
 FROM Employees e INNER JOIN EmployeePhone ep ON e.id = ep.empid

参考文档:

如果您使用的是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中的列后面添加语法分隔符“”,如果您想在这个特定示例中用空格分隔值,您使用的是什么?

,是不同的数据库。我把它们都删除了。将其中一个放回原处,即实际使用的数据库管理系统。“但是,找不到类似的内容。”或者,如果您使用的是SQL Server 2017或更高版本,请直接使用。。。