Lisibilité des sous-requêtes dans les requêtes EXISTS
La question de savoir quelle syntaxe de sous-requête est la plus lisible dans les requêtes EXISTS se pose souvent en raison de son impact sur la compréhension et clarté du code. Bien qu'il n'y ait pas de différence significative de performances entre les deux approches courantes, la sélection de l'option la plus appropriée peut améliorer la lisibilité et simplifier la maintenance.
Au départ, les bases de données privilégiaient l'utilisation de la syntaxe "EXISTS (SELECT * FROM baz WHERE baz.id = bar.id)" dans leur documentation. Cependant, au fil du temps, l'industrie s'est tournée vers la forme plus simple « EXISTS (SELECT 1 FROM baz WHERE baz.id = bar.id) ».
L'argument intuitif en faveur de l'utilisation de « SELECT » est que cela signifie une recherche de l'existence de n'importe quel* enregistrement dans la sous-requête. Cependant, cela conduit à certaines idées fausses. Comme indiqué dans les recommandations de l'industrie, l'accent doit être mis sur l'existence, et non sur le contenu, des enregistrements de sous-requête.
La syntaxe "EXISTS (SELECT 1 ..)" garantit qu'un seul enregistrement est renvoyé par la sous-requête. . Cela correspond à la définition d'EXISTS en tant que semi-jointure, qui vérifie la présence ou l'absence d'enregistrements dans une condition de jointure spécifiée.
Par conséquent, il est suggéré que l'approche la plus intuitive et la plus standard de l'industrie soit " EXISTS (SELECT 1 ..)", car cela simplifie l'accent mis sur la détermination de l'existence plutôt que d'introduire une complexité ou une confusion inutile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!