sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cuál es la sintaxis equivalente para la aplicación externa en PostgreSQL?

Es una unión lateral:

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;

Sin embargo, puede acercarse bastante en cualquier base de datos con solo una subconsulta correlacionada:

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;

También tenga en cuenta que en ambas bases de datos, obtener una fila sin ORDER BY es sospechoso.