Sql 在查询中合并两个表
SQL 2008数据库中有两个表,在运行查询时需要合并这两个列 表1我需要Sql 在查询中合并两个表,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,SQL 2008数据库中有两个表,在运行查询时需要合并这两个列 表1我需要员工ID,员工姓名,员工家庭部,员工轮班 表2我需要Emply\u ID,Emply\u OtherDept,Emply\u AltShift 我要做的是生成一行,将HomeDept和OtherDept组合在一起,并将Shift和AltShift组合在一起。所以我会以 00124|John Doe|Loading,Packing,Shipping|Shift1,Shift2,Shift3 这应该符合您的期望: SELEC
员工ID
,员工姓名
,员工家庭部
,员工轮班
表2我需要Emply\u ID
,Emply\u OtherDept
,Emply\u AltShift
我要做的是生成一行,将HomeDept
和OtherDept
组合在一起,并将Shift
和AltShift
组合在一起。所以我会以
00124|John Doe|Loading,Packing,Shipping|Shift1,Shift2,Shift3
这应该符合您的期望:
SELECT t.EmplyId,
t.Emply_name,
CONCAT(t.Emply_HomeDept, ',' , x.otherDept) AS FullDept,
CONCAT(t.Emply_Shift, ',' , x.AltShift) AS FullShift,
FROM
Table1 t
LEFT JOIN (
SELECT t2.EmplyId,
(SELECT t3.OtherDept + ',' AS [text()]
FROM table2 t3
WHERE t3.EmplyId = t2.EmplyId
FOR XML PATH ('')
) AS otherDept,
(SELECT t4.AltShift + ',' AS [text()]
FROM table2 t4
WHERE t4.EmplyId = t2.EmplyId
FOR XML PATH ('')
) AS AltShift
FROM
Table2 t2 ) x
ON t.Emply_Id = x.EmplyId
有什么问题吗?