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

Was ist die äquivalente Syntax für Outer Apply in PostgreSQL

Es ist ein lateraler Join:

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;

Sie können jedoch in beiden Datenbanken mit nur einer korrelierten Unterabfrage ziemlich nahe kommen:

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;

Beachten Sie auch, dass in beiden Datenbanken eine Zeile ohne ORDER BY abgerufen wird ist verdächtig.