Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comprendre le produit cartésien en SQL

Une jointure cartésienne joint chaque enregistrement de la première table à chaque enregistrement de la deuxième table, donc puisque votre table a 7 lignes et qu'elle est jointe à elle-même, elle devrait renvoyer 49 enregistrements si vous n'aviez pas de where clause. Votre clause where n'autorise que les enregistrements où a le solde de est inférieur à b l'équilibre. Depuis 900 est, comme vous l'avez dit, le solde maximal dans le tableau, il ne sera jamais inférieur à tout autre solde, et donc il ne sera jamais restitué.

En ce qui concerne les cinq premières lignes, les règles normales de SQL s'appliquent également aux jointures. Étant donné que les tables SQL n'ont pas d'ordre intrinsèque, il appartient entièrement à la base de données de décider comment les renvoyer, à moins que vous n'indiquiez explicitement un ordre dans le order by clause. Les valeurs que vous avez répertoriées sont des valeurs parfaitement valides que vous attendez de la requête.