gpt4 book ai didi

php - 构建 mysql 查询和/或 php 代码来关联不明确的数据点

转载 作者:行者123 更新时间:2023-11-30 00:44:34 25 4
gpt4 key购买 nike

我不确定我所要求的是一个特定的查询还是能够解决这个问题的 php 代码,也许我所要求的是一个应用程序。我会尽力解释情况。

想象一系列现实世界的物理组件以及它们连接在一起时形成的网络。每个组件都有两个 Terminal s,这些终端与 Node s 连接,从概念上讲,我们可以在下面看到网络连接的一小部分:

Object1 100000051
100000052

Node1 400000051

Object2 100000053
100000054

Node2 400000052

在此示例中,TerminalObject1 2 连接到 Node1 ,同样,TerminalObject2 1 连接到 Node1 。此查询/php 的目标是描述此连接性。

来自数据库的数据示例:

Object table:
ObjectID(PK) TerminalID1 TerminalID2
200000011 100000051 100000052

Node table:
NodeID(PK)
400000051

Terminal table:
TerminalID(PK) NodeID
100000052 400000051

如果我想描述连接性,我必须检查数据中的连接,到目前为止我已经:

每个 Object 有两个 Terminal

每个 Terminal 都有一个关联的 Node ID

如果我想在一行中包含数百个相似的数据,我需要一种方法来拉动每个节点,然后拉动连接到该节点的每个组件。我觉得我在这里遗漏了一些东西,无论是在概念上还是在我的模式存在的方式上。给定正确的模式是否有办法做到这一点?我是否需要提取所有数据,然后创建一个算法来组合所有数据?

最佳答案

给定起始对象 ID,您可以获得它连接到的 ID:

SELECT t.NodeID neighbor
FROM Object AS o
JOIN Terminal AS t ON t.TerminalID = o.TerminalID1
WHERE o.ObjectID = <starting ID>
UNION
SELECT t.NodeID neighbor
FROM Object AS o
JOIN Terminal AS t ON t.TerminalID = o.TerminalID2
WHERE o.ObjectID = <starting ID>

如果您想获取所有连接节点的完整网络,则必须使用之前检索到的 ID 迭代执行此操作。确保检查重复项,否则如果存在循环,您将最终无限循环。

关于php - 构建 mysql 查询和/或 php 代码来关联不明确的数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21492642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com