A表,字段为 r_id, r_name
B表,字段为 h_id, r_id
C表,字段为 s_id, h_id, s_name
D表,字段为e_id, h_id, e_name
要查询出如下的信息,SQL语句应该怎么写?
r_name s_name e_name
------解决思路----------------------
SELECT A.r_name,C.s_name,D.e_name这样?
FROM A JOIN B ON A.r_id=B.r_id
JOIN C ON B.h_id=C.h_id
JOIN D ON C.s_id=D.s_id
------解决思路----------------------
可以用FOR XML,给大神们去写吧
------解决思路----------------------
即使按照你说的合并,一个r_name仍然会有多行。
因为e_name可能有多个!
select A.r_name
,STUFF((SELECT ','+[s_name] FROM C WHERE h_id=B.h_id FOR XML PATH('')), 1, 1, '') as s_name
,D.e_name
from A
left join B on A.r_id = B.r_id
left join D on B.h_id = D.h_id