2017-12-21 6 views
3

MSSQL에서 PostgreSQL에 이르는 OUTER APPLY와 동일한 용도로 SQL 쿼리를 찾으려고 합니다만 찾을 수없는 것 같습니다.PostgreSQL의 Outer Apply 문법은 무엇입니까?

내 MSSQL 샘플 쿼리는 다음과 같습니다.

누군가 내 문제를 도와 줄 수 있기를 바랍니다. 미리 감사드립니다.

SELECT table1.col1, table1.col2, Supp.ID, Supp.Supplier 

FROM SIS_PRS table1 

OUTER APPLY (SELECT TOP 1 ID, SupplierName FROM table2 WHERE table2.ID = table1.SupplierID) AS Supp 

답변

2

그것은 측면이다 가입 :

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; 

그러나, 당신은 단지 상관 하위 쿼리와 데이터베이스 중 하나에 아주 가까이 올 수 있습니다 :

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

이 또한주의 그 두 데이터베이스에서, ORDER BY이없는 한 행을 가져 오는 것은 의심 스럽습니다.

+0

대단히 고맙습니다. 주문 샘플을 추가하는 것을 잊었습니다. :) – ayanix