gpt4 book ai didi

sql - 在 PostgreSQL 中是否可以在表和函数之间进行连接?

转载 作者:行者123 更新时间:2023-11-29 13:56:22 25 4
gpt4 key购买 nike

我有一个名为 Cars 的表和一个名为 PartsPerCar 的函数

carid 之间没有直接链接partid .链接是中间的 3 个表。我确实有一个名为 PartsPerCar 的函数得到carid (它通过中间的表格移动)并归还所有 partidcarid有关.

例如:如果我选择carid=125我可以打电话PartsPerCar(125)并得到:

part id    part name
10 Wheel A
12 Wheel D
13 Glass F

我最终想要得到的是获得所有汽车及其所有零件的 list 。

类似于:

  Car ID ,   Part ID , Part Name
1 15 engine A
1 17 engine C
.
.
.
125 10 Wheel A
125 12 Wheel D
125 13 Glass F

问题是没有什么可做的。

我知道我能做到:

select PartsPerCar(carid)
from Cars

但它对我帮助不大,因为我需要 partid与 WHERE 语句一起使用。这样我就做不到了。

最佳答案

您的表使用 carid 值从返回一组行的函数 PartsPerCar() 中检索相应的 part_id,因此-叫table function .在第 5 小节(继续阅读)中我们看到

Table functions appearing in FROM can also be preceded by the key word LATERAL, but for functions the key word is optional; the function's arguments can contain references to columns provided by preceding FROM items in any case.

您拥有执行查询所需的一切:

SELECT carid, partid, part_name
FROM cars, PartsPerCar(carid) AS carparts;

这在表 cars 和函数 PartsPerCar() 的记录集之间创建了一个CROSS JOIN,但是由于后者受从前者获取的参数的约束,它有效地像连接条件一样工作。

关于sql - 在 PostgreSQL 中是否可以在表和函数之间进行连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002427/

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