gpt4 book ai didi

php - 帮助构建最佳查询

转载 作者:行者123 更新时间:2023-11-29 14:52:01 25 4
gpt4 key购买 nike

我有一个基本上是的表结构

Sent_txts_parent
Sent_txts_control_parent
Sent_txts_control_child

链接在一起为

Sent_txts_parent = 顶级

Sent_txts_control_parent 链接到 Sent_txts_parent 通过
Sent_txts_control_parent.parent_id = Sent_txts_parent.id

Sent_txts_control_child 通过
链接到 Sent_txts_control_parentSent_txts_control_child.parent_id = Sent_txts_control_parent.id

我需要运行一个查询,当给定 Sent_txts_parent.id 时,需要返回 Sent_txts_control_child 中链接到该 ID 的所有行。

执行此查询的最佳方法是什么?

可能是这样的

Select stcc.* from Sent_txts_control_child stcc
left join Sent_txts_control_parent stcp
on stcc.parent_id = stcp.id
left join Sent_txts_parent stp
on stp.parent_id = stcp.parent_id;

但我什至不知道我的连接是否位于右侧,也不知道这是否是最优化的。

最佳答案

我看不出有任何理由使用外连接。简单的解决方案是:

SELECT cc.*
FROM Sent_txts_control_child AS cc
JOIN Sent_txts_control_parent AS cp ON cc.Parent_ID = cp.ID
JOIN Sent_txts_parent AS st ON cp.Parent_ID = st.ID
WHERE st.ID = ?;

但是,我们可以观察到您给出的值对应于Sent_txts_parent.ID也匹配Sent_txts_control_parent.Parent_ID,因此不需要三重连接;我们可以使用双连接来代替:

SELECT cc.*
FROM Sent_txts_control_child AS cc
JOIN Sent_txts_control_parent AS cp ON cc.Parent_ID = cp.ID
WHERE cp.Parent_ID = ?;

问号代表您正在搜索的值。

关于php - 帮助构建最佳查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5533434/

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