Te dwa zapytania, które napisałeś dla inner joina działają tak samo, ale dla left joina już zadziałają inaczej.
To co następuje po WHERE jest filtrem na całe zapytanie, a nie filtrem dla złączenia.
SELECT * FROM dokument a LEFT JOIN pozycja b ON (a.id=b.id_dok) WHERE a.rok=2016 AND b.cena>180
To zapytanie mówi weź wszystkie rekordy z DOKUMENTY oraz podłącz do nich pozycje po kluczu a.id=b.id_dok. Z tak powstałego zbioru weź tylko te rekordy dla, których a.rok = 2016 i b.cena > 180.
Dostaniesz zbiór dokumentów z 2016 z pozycjami cena > 180.
SELECT * FROM dokument a LEFT JOIN pozycja b ON (a.id=b.id_dok AND a.rok=2016 AND b.cena>180)
To zapytanie mówi weź wszystkie rekordy z DOKUMENTY oraz podłącz do nich wszystkie pozycje po kluczu a.id=b.id_dok i podłącz tylko kiedy a.rok = 2016 a b.cena > 180.
Dostaniesz zbiór WSZYSTKICH dokumentów oraz podłączonymi pozycjami tylko dla dokumentów roku 2016 i ceny pozycji > 180.
Jeżeli użyjesz INNER JOINA to warunek złączenia jest jednocześnie filtrem, bo zwracana jest tylko część wspólna.