Postgres 的 SQL 查询

Posted

技术标签:

【中文标题】Postgres 的 SQL 查询【英文标题】:SQL query for Postgres 【发布时间】:2019-07-13 12:20:20 【问题描述】:

我正在尝试从一个表名“t”编写查询。我的查询中主要涉及 4 列。从这个示例数据中,我需要一个特定的输出。

Unit_name      Unit_id_from   unit_transferred_to     Action
------------------------------------------------------------
UNITABC        011102X         0215478Y               CONVERTED  
UNITQWE        0222487Y        NULL                   NEW RAISED   
UNITASDF       0215478Y        NULL                   INVALID   
UNITPOU        0487985Z        08975469K              CONVERTED  
UNITHUT        08975469K       NULL                   INACTIVE

unit_transferred_to 的名称实际上在第一列 unit_name 中。所以我需要来自 unit_name 的 unit_transferred_to 的名称和 action = 'converted'

输出需要如下所示:

Unit_name   Unit_id_from   unit_transferred_to     unit_transfer_name     Action
----------------------------------------------------------------------------------
UNITABC       011102X        0215478Y              UNITASDF               CONVERTED  
UNITPOU       0487985Z       08975469K             UNITHUT                CONVERTED

【问题讨论】:

【参考方案1】:

这好像是join

select ti.Unit_name, ti.Unit_id_from, ti.unit_transferred_to,
       tito.unit_name as unit_transfer_name, 
       ti.Action
from ti join
     ti tito
     on ti.unit_transferred_to = tito.unit_transferred_from
where ti.action = 'CONVERTED'

【讨论】:

表 t 中没有名为 unit_transfer_name 的列。我想将 unit_name 别名为输出中的两列,其中一列是 unit_name 作为 unit_name_from,unit_name 作为 unit_name transfer_to.. 它必须通过 join 来完成,但是我没有正确理解

以上是关于Postgres 的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

将 T-SQL 查询转换为 Postgres

GCP SQL Postgres 权限问题:无法使用生成的 symfony db 使用 postgres 用户运行查询

sql postgres中的SQL查询

sql Postgres查询列表和kill查询

sql 有用的Postgres查询

我可以做些啥来优化适用于 Postgres 和 MySQL 的 SQL 查询?