Een Cartesiaanse join voegt elk record in de eerste tabel samen met elk record in de tweede tabel, dus aangezien uw tabel 7 rijen heeft en het is samengevoegd met zichzelf, zou het 49 records moeten retourneren als u geen where
had gehad clausule. Uw where-clausule staat alleen records toe waar a
's saldo is kleiner dan b
's saldo. Sinds 900
is, zoals u zei, het maximale saldo in de tabel, het zal nooit kleiner zijn dan enig ander saldo en daarom zal het nooit worden geretourneerd.
Met betrekking tot de eerste vijf rijen zijn de normale regels van SQL ook van toepassing op joins. Aangezien SQL-tabellen geen intrinsieke volgorde hebben, is het volledig aan de database om te beslissen hoe ze moeten worden geretourneerd, tenzij u expliciet een volgorde aangeeft in de order by
clausule. De waarden die u opsomt, zijn volkomen geldige waarden die u zou verwachten dat de query retourneert.