Maison >base de données >tutoriel mysql >Comment combiner plusieurs instructions SELECT avec LIMIT 1 en SQL ?
Combinaison de plusieurs instructions SELECT
Comme vous l'avez mentionné, vous êtes confronté à un problème lorsque vous tentez de combiner plusieurs instructions SELECT qui limitent chacune les résultats sur une seule ligne. Le défi se pose lors de l'utilisation de UNION ALL car la clause LIMIT semble perturber le processus d'union.
Pour résoudre ce problème, vous pouvez utiliser des parenthèses pour délimiter chaque instruction SELECT individuelle. Cela garantit que l'union est effectuée correctement, car la documentation de UNION indique explicitement que les clauses ORDER BY et LIMIT doivent être placées entre parenthèses pour s'appliquer à la sous-expression plutôt qu'au résultat de l'union.
Voici comment vous pouvez modifier votre requête :
(SELECT result FROM foo.table LIMIT 1) UNION ALL (SELECT result FROM bar.table LIMIT 1) UNION ALL (SELECT result FROM doo.table LIMIT 1)
Cette syntaxe garantit que chaque sous-instruction est traitée séparément, avec la clause LIMIT appliquée aux résultats individuels. L'union est ensuite effectuée sur les résultats de chaque ligne, vous donnant une seule colonne avec le nombre attendu de lignes correspondant aux noms de schéma.
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!