sql >> Database >  >> RDS >> PostgreSQL

Wat is de equivalente syntaxis voor Outer Apply in PostgreSQL?

Het is een laterale verbinding:

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;

U kunt echter in beide databases redelijk dichtbij komen met slechts een gecorreleerde subquery:

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;

Merk ook op dat in beide databases één rij wordt opgehaald zonder ORDER BY is verdacht.




  1. JSON_QUOTE() – Hoe te ontsnappen aan tekens in tekenreeksen die worden gebruikt als JSON-waarden in MySQL

  2. Batch-inserts met PHP

  3. Niet-cijferige tekens die positief retourneren bij gebruik van ISNUMERIC() in SQL Server

  4. Lijst van alle nullable-kolommen in een SQL Server-database