Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL图最短路径示例_Sql_Sql Server_Sql Graph - Fatal编程技术网

SQL图最短路径示例

SQL图最短路径示例,sql,sql-server,sql-graph,Sql,Sql Server,Sql Graph,提供在SQL Server 2019上使用最短路径的示例。这项技术被称为SQL图 Car -> BodyWork | V Wheel -> Tyre 我们如何列出所有部件以及从根目录下来的相关路径 CREATE TABLE PRODUCT ( ProductID int not null identity primary key, ProductName varchar(50) ) AS Node; INSERT INTO PRODUCT(Pro

提供在SQL Server 2019上使用最短路径的示例。这项技术被称为SQL图

Car -> BodyWork
 |
 V
Wheel -> Tyre
我们如何列出所有部件以及从根目录下来的相关路径

CREATE TABLE PRODUCT (
       ProductID int not null identity primary key,
       ProductName varchar(50) 
) AS Node;

INSERT INTO PRODUCT(ProductName) VALUES ('Car'),('BodyWork'),('Wheel'),('Tyre');

SELECT * FROM PRODUCT;

CREATE TABLE HAS_PART AS EDGE;


INSERT INTO HAS_PART ($from_id, $to_id)
VALUES ((SELECT $node_id FROM PRODUCT WHERE ProductId=1), (SELECT $node_id FROM PRODUCT WHERE ProductId=2))
,((SELECT $node_id FROM PRODUCT WHERE ProductId=1), (SELECT $node_id FROM PRODUCT WHERE ProductId=3))
,((SELECT $node_id FROM PRODUCT WHERE ProductId=3), (SELECT $node_id FROM PRODUCT WHERE ProductId=4));

SELECT * FROM HAS_PART;

SELECT
       P1.ProductID,
       P1.ProductName,
       COUNT(P2.ProductName) WITHIN GROUP (GRAPH PATH) AS [Depth],
       STRING_AGG(P2.ProductName,'->') WITHIN GROUP (GRAPH PATH) AS [Assembly],
       LAST_VALUE(P2.ProductID) WITHIN GROUP (GRAPH PATH) AS [Final Product ID]
FROM
       PRODUCT P1,
       PRODUCT FOR PATH P2,
       HAS_PART FOR PATH HP
WHERE MATCH(SHORTEST_PATH(P1(-(HP)->P2)+))
AND P1.ProductID = 1
ORDER BY P1.ProductID;

你应该把这个问题更多地表述为一个具体的问题。i、 e.给出设置数据,然后询问-如何获得X和Y之间的最短路径?