Mysql 连接2个表时,1列中有多个值
表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
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或更高版本,请直接使用。。。