Introduction In Part 1 of this series, we explored how CROSS APPLY can be used to retrieve related rows based on values from the current row of the outer table. One important characteristic of CROSS APPLY is that it returns only rows where the correlated query produces a result. Sometimes, however, we need to return every row from the outer table, even when no matching rows exist. For example, a report may need to list all customers, including those who have never placed an order.