gpt4 book ai didi

sql - 如何在sql中进行join时保持顺序

转载 作者:行者123 更新时间:2023-12-02 11:03:21 28 4
gpt4 key购买 nike

表 1 和表 2 的主键 (key1,key2) 相同。表 3 是用户定义的表,具有与表 2 相同的一列字段 5。我需要从表 1 和表 2 中选择行,其中表 2 中的 field5 位于表 3 中。我需要以与 table3 相同的顺序获取行。

表1

键1键2字段1字段2

表2

key1 key2 field3 field4 field5

用户定义表

字段5

我正在想的查询是

select a.key1, a.key2, a.field1, a.field2, b.field3, b.field4
from table1 as a INNER JOIN table2 as b ON a.key1 = b.key1 AND a.key2 = b.key2
where b.field5 in (select field5 from table3)

这不会给我提供与 table3 中相同顺序的行。

我需要这样的东西来维持秩序吗?

select a.key1, a.key2, a.field1, a.field2, d.field3, d.field4 from
table1 as a INNER JOIN
(select b.key1, b.key2, b.field3, b.field4
from table2 as b INNER JOIN table3 as c
ON b.field5 = c.field5) as d
WHERE a.key1 = d.key1 AND a.key2 = d.key2

最佳答案

当您使用 order by 子句时,在最终结果中提供订单。

如果您希望“与 table3 的顺序相同”,则必须编写正确的 order by 子句来重新创建 table3 中的顺序。

如果连接可以让事情进展得更快,那么它可以自由地打乱行。

关于sql - 如何在sql中进行join时保持顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5743373/

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