【问题标题】:PSQL join - Column "table.column" does not existPSQL 连接 - 列“table.column”不存在
【发布时间】:2023-03-22 07:45:01
【问题描述】:

我需要更新表中的记录,但前提是该表的某一列等于另一个表的列的内容。

但首先,为了确定,我想选择所有符合这个特定条件的记录,所以我尝试了类似的方法:

SELECT * FROM "table1" as ARR INNER JOIN "table2" as AOP ON ("AOP.col2" = "ARR.col1");

但查询返回此错误:

错误:列“AOP.col2”不存在
第 1 行:...as ARR INNER JOIN "table2" as AOP ON ("AOP.col...

我做错了什么? (显然该列确实存在)
看到这个错误你认为下面的更新查询也会失败吗?

UPDATE "table2" AS AOP
SET "col2" = "ARR.col1"
FROM "table1" AS ARR
WHERE "AOP.col3" = "ARR.col4";

【问题讨论】:

  • 去掉所有无用的双引号

标签: sql postgresql sql-update inner-join


【解决方案1】:

[已解决]

如果有人对解决方案感兴趣,那就是:

SELECT * FROM "table1" as "ARR" INNER JOIN "table2" as "AOP" ON ("AOP"."col2" = "ARR"."col1");

【讨论】:

  • 我强烈建议删除所有那些无用的双引号,并且永远不要使用带引号的标识符。从长远来看,这会让您少很多麻烦。
【解决方案2】:

SELECT * FROM table1 ARR INNER JOIN table2 AOP ON AOP.col2=ARR.col1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2017-09-24
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    相关资源
    最近更新 更多