Dlaczego tak
LEFT JOIN zwraca każdy wiersz lewej tabeli, nawet bez dopasowania. Klient 1 ma dwa zamówienia, więc daje 2 wiersze, klient 3 — jeden wiersz, a klient 2 bez zamówień pojawia się raz z wartością NULL w kolumnie z.id. Razem 4 wiersze. INNER JOIN pominąłby klienta 2 i zwrócił 3 wiersze, a 9 to iloczyn kartezjański bez warunku ON.