gpt4 book ai didi

SQLite 在同一张表上两次加入

转载 作者:行者123 更新时间:2023-12-03 18:31:17 27 4
gpt4 key购买 nike

我有一个表,其中有几列包含另一个表的 ID。
例子:

T1 {id,p1,p2,p3}
T2 {id,name}

所以, p1 , p2p3是来自 T2 的 ID .
我想做的是从 T1中全选并具有来自 T2 的名称值以及。

这就是我现在正在使用的:
select
T1.id,T1.p1,T1.p2,T1.p3,
T2a.name as p1_name,T2b.name as p2_name,T2c.name as p3_name
from
T1 left join T2 as T2a on T1.p1=T2a.id
left join T2 as T2b on T1.p2=T2b.id
left join T2 as T2c on T1.p3=T2c.id;

应该这样做吗?有什么我应该担心的速度问题吗?

谢谢你。

最佳答案

是的,这是正确的方法。如果你知道 T2将拥有所有正确的值,然后您可以使用内连接而不是外连接:

select T1.id,
T1.p1, T21.name as p1_name,
T1.p2, T22.name as p2_name,
T1.p3, T23.name as p3_name
from T1
join T2 as T21 on T1.p1 = T21.id,
join T2 as T22 on T1.p2 = T22.id,
join T2 as T23 on T1.p3 = T23.id

您可能想看看 foreign keysT1列以确保您在 T2 中拥有所需的一切.

性能应该不错,这是一个非常标准的查询。

关于SQLite 在同一张表上两次加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336641/

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