PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Qual è la sintassi equivalente per Outer Apply in PostgreSQL

È un'unione laterale:

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;

Tuttavia, puoi avvicinarti abbastanza in entrambi i database con solo una sottoquery correlata:

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;

Si noti inoltre che in entrambi i database, viene recuperata una riga senza ORDER BY è sospetto.