Złączenie kartezjańskie łączy każdy rekord w pierwszej tabeli z każdym rekordem w drugiej tabeli, więc skoro twoja tabela ma 7 wierszy i jest złączona ze sobą, powinna zwrócić 49 rekordów, gdybyś nie miał where
klauzula. Twoja klauzula where zezwala tylko na rekordy, w których a
saldo jest mniejsze niż b
równowaga. Od 900
jest, jak powiedziałeś, maksymalnym saldem w tabeli, nigdy nie będzie ono mniejsze niż jakiekolwiek inne saldo i dlatego nigdy nie zostanie zwrócone.
W odniesieniu do pierwszych pięciu wierszy, normalne zasady SQL dotyczą również złączeń. Ponieważ tabele SQL nie mają wewnętrznej kolejności, decyzja o sposobie ich zwrócenia zależy wyłącznie od bazy danych, chyba że jawnie określisz kolejność w order by
klauzula. Wymienione wartości są całkowicie prawidłowymi wartościami, których można oczekiwać od zapytania.