I was reading an article on using apply & join
keywords. See some SQL where one example uses inner join & other use apply keyword.
Here is table pic
SELECT E.EMPID, E.NAME, E.DEPTID, D.NAME
FROM EMPLOYEE E
INNER JOIN DEPARTMENT D ON E.DEPTID = D.DEPTID
SELECT E.EMPID, E.NAME, E.DEPTID, CA.NAME
FROM EMPLOYEE E
CROSS APPLY
(SELECT * FROM DEPARTMENT D WHERE D.DEPTID = E.DEPTID) CA
Both the queries return the same output and same execution plan. Here is the pic
Again use outer apply and left outer join
SELECT E.EMPID, E.NAME, E.DEPTID, D.NAME
FROM EMPLOYEE E
LEFT JOIN DEPARTMENT D ON E.DEPTID = D.DEPTID
SELECT E.EMPID, E.NAME, E.DEPTID, OA.NAME
FROM EMPLOYEE E
OUTER APPLY
(SELECT * FROM DEPARTMENT D WHERE D.DEPTID = E.DEPTID) OA
Now again both queries produce same output and same execution plan. So I just do not understand in what kind of situation one should use OUTER APPLY
or CROSS APPLY
instead of inner join or left outer join?
so if possible come with same scenario where one should use OUTER APPLY or CROSS APPLY
thanks