sql >> Databasteknik >  >> RDS >> PostgreSQL

Vad är motsvarande syntax för Outer Apply i PostgreSQL

Det är en lateral sammanfogning:

SELECT table1.col1, table1.col2, Supp.ID, Supp.Supplier
FROM SIS_PRS table1 LEFT JOIN LATERAL
     (SELECT ID, SupplierName
      FROM table2
      WHERE table2.ID = table1.SupplierID
      FETCH FIRST 1 ROW ONLY
     ) Supp
     ON true;

Du kan dock komma ganska nära i båda databaserna med bara en korrelerad underfråga:

SELECT table1.col1, table1.col2, table1.SupplierID, 
       (SELECT Name
        FROM table2
        WHERE table2.ID = table1.SupplierID
        FETCH FIRST 1 ROW ONLY
       ) as SupplierName
FROM SIS_PRS table1;

Observera också att i båda databaserna hämtas en rad utan ORDER BY är misstänkt.




  1. Lagring av känslig data säkert i en databas

  2. Hur ger man en unik begränsning till en kombination av kolumner i Oracle?

  3. ClassNotFoundException i JDBC-programmet trots att förarens JAR-fil lagts till

  4. nodejs mysql multipel där query's