gpt4 book ai didi

mysql - 关于 MySQL 和 PostgreSQL 中的子查询

转载 作者:可可西里 更新时间:2023-11-01 06:42:49 25 4
gpt4 key购买 nike

当我使用 MySQL 时,以下查询运行正常。

SELECT 1 as num1, (select(num1 + 1)) as num2

但是 PostgreSQL 返回错误。

ERROR: column "num1" does not exist

为什么响应不同?

最佳答案

问题不应该是为什么 Postgres 不支持这种语法,而是为什么 MySQL 支持。在大多数 RDBMS 中,别名仅在查询执行后才解析,因此您不能在声明它们的查询中使用它们。例如,更常见的用例 - 您不能在声明它的查询/表元素的 where 子句中使用列别名。

解决这个问题的一种方法是使用子查询:

SELECT num1, num1 + 1 AS num2
FROM (SELECT 1 AS num1) t

关于mysql - 关于 MySQL 和 PostgreSQL 中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30474039/

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