You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在同一查询中混合使用SQL Server图表与非图表?

如何在SQL Server中直接混合图模型与传统关系模型查询

可以直接在单个查询中混合图模型与传统关系模型的操作,无需借助临时表中转——这完全符合微软官方文档中“跨图数据和关系数据进行查询”的描述。

直接混合查询的示例写法

针对你提到的好友关系查询场景,无需将图查询结果存入临时表,可直接将图遍历逻辑与传统关系表关联:

SELECT
    Person1.[name] AS UserName,
    Person2.[name] AS Friend,
    s.*
FROM
    Person AS Person1,
    friendOf,
    Person AS Person2
INNER JOIN [SomeOtherRdbTable] s 
    ON s.FirstName = Person1.[name]
WHERE MATCH(Person1-(friendOf)->Person2)

再以你最初的Person-LivesIn-City图模型为例,关联一个传统的员工信息表(如Employee):

SELECT
    p.[name] AS PersonName,
    c.[name] AS CityName,
    e.Department,
    e.HireDate
FROM
    Person p,
    LivesIn li,
    City c
INNER JOIN Employee e 
    ON e.FirstName = p.[name]
WHERE MATCH(p-(li)->c)

写法说明

  • 保留MATCH子句处理图模型的节点与边关系遍历,这是图查询的核心逻辑;
  • 使用常规的INNER JOIN(或其他JOIN类型)直接将图节点表(如Person)与传统关系表关联,关联条件基于双方的业务字段(如姓名、ID等);
  • SQL Server的查询引擎会自动处理图数据与关系数据的执行路径整合,无需手动拆分逻辑。

这种写法既保留了图模型在处理复杂关系(如社交网络、组织架构)上的优势,又能直接复用遗留系统中的关系表数据,避免数据冗余,比临时表中转的方式更简洁高效。

内容的提问来源于stack exchange,提问作者Roger Hill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:10:58