Maison >base de données >tutoriel mysql >Résultats de la requête de fusion de données de requête MySQL
.
select column,...from table1union [all]select column,... from table2
(recommandation d'apprentissage gratuite : tutoriel vidéo mysql)
[Exemple 1] Interrogez les informations de tous les fruits dont le prix est inférieur à 9, interrogez les informations de tous les fruits avec s_id égal à 101 et 103, utilisez union pour connecter les résultats de la requête, l'instruction SQL est la suivante :
mysql> select s_id,f_name,f_price -> from fruits -> where f_price <9.0 -> union all -> select s_id,f_name,f_price -> from fruits -> where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+15 rows in set (0.06 sec)
Union combine les résultats de plusieurs instructions select dans un ensemble de résultats. Vous pouvez afficher les résultats de chaque instruction select séparément :
mysql> select s_id,f_name,f_price -> from fruits -> where f_price < 9.0;+------+---------+---------+| s_id | f_name | f_price |+------+---------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 |+------+---------+---------+10 rows in set (0.00 sec)mysql> select s_id,f_name,f_price -> from fruits -> where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+5 rows in set (0.00 sec)
Comme vous pouvez le voir dans les résultats de requête séparés, la première instruction select interroge les fruits dont le prix est inférieur à 9, et la seconde instruction select interroge les fruits fournis. par les fournisseurs 101 et 103 fruits.
[Exemple 2] Interrogez les informations de tous les fruits dont le prix est inférieur à 9, interrogez les informations de tous les fruits dont le s_id est égal à 101 et 103, utilisez union all pour connecter les résultats de la requête, le SQL L'instruction est la suivante :
mysql> select s_id,f_name,f_price -> from fruits -> where f_price<9.0 -> union all -> select s_id,f_name,f_price -> from fruits -> where s_id in(101,103);+------+------------+---------+| s_id | f_name | f_price |+------+------------+---------+| 104 | lemon | 6.40 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 104 | berry | 7.60 || 107 | xxxx | 3.60 || 105 | melon | 8.20 || 101 | cherry | 3.20 || 105 | xbabay | 2.60 || 102 | grape | 5.30 || 107 | xbabay | 3.60 || 101 | apple | 5.20 || 103 | apricot | 2.20 || 101 | blackberry | 10.20 || 101 | cherry | 3.20 || 103 | coconut | 9.20 |+------+------------+---------+15 rows in set (0.00 sec)
Comme vous pouvez le voir, le nombre total d'enregistrements ici est égal à la somme du nombre d'enregistrements renvoyés par les deux instructions select. Les résultats de la requête de connexion ne suppriment pas les lignes en double.
La différence entre union et union all :
union all
n'est pas de supprimer les lignes en double, et les ressources requises lors de l'exécution du all instruction de mot-clé Moins, alors utilisez-la autant que possible. Plus de recommandations d'apprentissage gratuites associées : tutoriel mysql(vidéo)
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!