gpt4 book ai didi

sql - 如何正确地从 PostgreSQL 中的子查询中获取多列?

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

假设我对 PostgreSQL 数据库进行了这样的 SQL 查询。如您所见,我正在重复相同的子查询以获取另一列。我确信这是无效的。根据您的意见,执行 sql 查询的最佳方式是什么?

SELECT
TABLE_A.COLUMN_1,
TABLE_A.COLUMN_2,
(
SELECT
TABLE_B.COLUMN_A,
FROM
TABLE_B
WHERE
TABLE_B.COLUMN_Z ILIKE CONCAT('%', TABLE_A.COLUMN_2, '%')
) AS COLUMN_3,
(
SELECT
TABLE_B.COLUMN_B,
FROM
TABLE_B
WHERE
TABLE_B.COLUMN_Z ILIKE CONCAT('%', TABLE_A.COLUMN_2, '%')
) AS COLUMN_4,
FROM
TABLE_A

最佳答案

使用横向连接:

SELECT a.COLUMN_1, a.COLUMN_2, b.*
FROM TABLE_A a LEFT JOIN LATERAL
(SELECT b.COLUMN_A, b.COLUMN_B
FROM TABLE_B b
WHERE b.COLUMN_Z ILIKE CONCAT('%', a.COLUMN_2, '%')
) b
ON 1=1;

关于sql - 如何正确地从 PostgreSQL 中的子查询中获取多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56560354/

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