【发布时间】:2016-10-24 01:25:47
【问题描述】:
SQL SERVER 查询需要帮助
我有五张桌子,Roles、Requirements、Documents、RoleRequirments(。role 有很多 requirements)、RequirmentsDocuments(requirements 有很多 documents)。
现在我需要Role document 报告它们之间没有直接联系,但我正在尝试通过requirement 表。
我需要所有文档以及角色 ID。
doc-id label roleids
1 A 2,5,6
2 B 2,1
3 C 5
SELECT d.title, d.id as doc_id, m.moduleId as mid , d.type,m.label, STUFF((SELECT ', ' + CAST(rc.roleid AS VARCHAR(10)) [text()] FROM edoc_link_role_req as rc WHERE rc.reqid= cd.reqid FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,' ') as roleid FROM edoc_link_role_req rc
LEFT JOIN edoc_link_req_document cd ON cd.reqid = rc.reqid
LEFT JOIN edoc_document d ON cd.documentid = d.id
WHERE d.installationid = 1
【问题讨论】:
-
我只算4张桌子?
-
在查询中,我只使用了三个,
-
你需要
Roles LEFT JOIN RoleRequirments LEFT JOIN RequirmentsDocuments LEFT JOIN Documents(伪代码)。然后您可以通过连接的表访问文档 -
那为什么要提到你有 5 个表,如果你在这个查询中只使用 3 个表,然后再声明 4 个?
-
我可以访问文档,但我需要为每个文档使用逗号分隔的角色 ID
标签: php sql sql-server join