sql >> Databasteknik >  >> RDS >> Mysql

Förstå kartesiska produkter i SQL

En kartesisk join sammanfogar varje post i den första tabellen med varje post i den andra tabellen, så eftersom din tabell har 7 rader och den är sammanfogad med sig själv, borde den returnera 49 poster om du inte hade en where klausul. Din where-sats tillåter endast poster där a s saldo är mindre än b s balans. Sedan 900 är, som du sa, det maximala saldot i tabellen, kommer det aldrig att vara mindre än något annat saldo, och därför kommer det aldrig att returneras.

När det gäller de första fem raderna gäller de normala SQL-reglerna även för joins. Eftersom SQL-tabeller inte har någon egen ordning, är det helt upp till databasen att bestämma hur de ska returneras, såvida du inte uttryckligen anger en ordning i order by klausul. Värdena du angav är helt giltiga värden som du förväntar dig att frågan ska returnera.



  1. Få antalet resultat som returneras av en MySQL-fråga med JDBC på det mest prestandaeffektiva sättet

  2. MySQL:Transaktioner vs låsningstabeller

  3. Hur kan jag fånga upp JTA-transaktionshändelser och få en referens till den aktuella EntityManager som är kopplad till transaktionen

  4. mysql-frågeresultat i php-variabel