首页 > 解决方案 > Postgres 的 SQL 查询

问题描述

我正在尝试从一个表名“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

标签: sqlpostgresqlpostgresql-9.4

解决方案


这看起来像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'

推荐阅读