PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Greifen Sie auf einen Spaltenalias in der where-Klausel in postgresql zu

So haben Sie es gemacht - Alias ​​im Spaltennamen

select 
  -- etc etc 
  (select innerDLI.datetime_created from distribution_line_items innerDLI where innerDLI.item_number = distribution_line_items.item_number order by innerDLI.datetime_created asc limit 1) as Origination,
  -- etc etc
from distribution_stop_information
  -- etc etc

So können Sie es in das Wo einfügen, Alias ​​in den Join

select 
  -- etc etc 
  Origination.datetime_created
  -- etc etc
from distribution_stop_information 
left join distribution_line_items AS Origination ON Origination.item_number = distribution_line_items.item_number
where Origination.datetime_created > to_date(?, 'YYYY-MM-DD') - interval '180 days'  
-- etc etc

Daran ist nichts besser als die von Ihnen gepostete Lösung (der SQL-Optimierer sollte zum gleichen Plan führen), aber es wird "ein Alias ​​in der Where-Klausel verwendet"