sql >> Database >  >> RDS >> Mysql

Cartesisch product begrijpen in SQL

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.



  1. Docker mysql kan geen verbinding maken met container

  2. Hoe schrijf ik XML naar een bestand (PL/SQL)?

  3. Is het beter om INNER JOIN of EXISTS te gebruiken om te zoeken naar meerdere in m2m-relatie?

  4. Mysql 'Kreeg fout -1 van opslagengine' fout