【问题标题】:MSSQL query for multiple table where no connection between themMSSQL查询多个表,它们之间没有连接
【发布时间】:2016-10-24 01:25:47
【问题描述】:

SQL SERVER 查询需要帮助

我有五张桌子,RolesRequirementsDocumentsRoleRequirments(。role 有很多 requirements)、RequirmentsDocumentsrequirements 有很多 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


【解决方案1】:

它是否等同于您所追求的 MySQL 的 GROUP_CONCAT,即将每个 docid 的角色 ID 连接在一起?

如果是这样,请参阅: Simulating group_concat MySQL function in Microsoft SQL Server 2005?

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多