Maison  >  Article  >  base de données  >  Requête combinée mysql : Qu'est-ce qu'une requête combinée ? Comment créer une requête combinée

Requête combinée mysql : Qu'est-ce qu'une requête combinée ? Comment créer une requête combinée

巴扎黑
巴扎黑original
2018-05-14 14:49:4311541parcourir

Qu'est-ce qu'une requête combinée ?

La plupart des requêtes SQL ne contiennent qu'une seule instruction SELECT qui renvoie les données d'une ou plusieurs tables. MySQL vous permet également d'exécuter plusieurs requêtes (plusieurs instructions SELECT) et de renvoyer les résultats sous la forme d'un seul ensemble de résultats de requête. Ces requêtes combinées sont souvent appelées requêtes union ou composées.

Il existe deux situations de base dans lesquelles des requêtes combinées doivent être utilisées :

1. Renvoyer des données structurées de manière similaire à partir de différentes tables dans une seule requête ; La table exécute plusieurs requêtes et renvoie les données sous la forme d'une seule requête.

Combinaison de requêtes et de plusieurs conditions WHERE Dans la plupart des cas, la combinaison de deux requêtes sur la même table accomplit le même travail qu'une seule requête avec plusieurs conditions de clause WHERE. En d’autres termes, toute instruction SELECT comportant plusieurs clauses WHERE peut être donnée sous forme de requête combinée, comme vous pouvez le voir dans les paragraphes suivants. Les deux techniques fonctionnent différemment selon les requêtes. Par conséquent, vous devez essayer les deux techniques pour déterminer laquelle est la plus performante pour une requête spécifique.

Comment créer une requête combinée

Vous pouvez utiliser l'opérateur UNION pour combiner plusieurs requêtes SQL. En utilisant UNION, vous pouvez donner plusieurs instructions SELECT et combiner leurs résultats en un seul jeu de résultats.

Utiliser UNION

Utiliser UNION est très simple. Il suffit de donner chaque instruction SELECT et de mettre le mot-clé UNION entre chaque instruction.

À titre d'exemple, supposons que vous ayez besoin d'une liste de tous les articles dont le prix est inférieur ou égal à 5, et que vous souhaitiez également inclure tous les articles produits par les fournisseurs 1001 et 1002 (quel que soit le prix). Bien sûr, cela peut être fait avec une clause WHERE, mais cette fois nous utiliserons UNION .

Comme mentionné, créer une UNION implique d'écrire plusieurs instructions SELECT. Examinons d'abord une seule instruction :

Entrée :

Sortie :
select vend_id,prod_id,prod_price from products where prod_price <= 5;

Requête combinée mysql : Quest-ce quune requête combinée ? Comment créer une requête combinéeEntrée :

Sortie :
select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);

Requête combinée mysql : Quest-ce quune requête combinée ? Comment créer une requête combinéeAnalyse : Le premier SELECT récupère tous les articles dont le prix n'est pas supérieur à 5. Le deuxième SELECT utilise IN pour rechercher tous les articles produits par les fournisseurs 1001 et 1002.

Pour combiner ces deux déclarations, procédez comme suit :

Entrée :

Sortie :
select vend_id,prod_id,prod_price from products where prod_price <= 5 union select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);

Requête combinée mysql : Quest-ce quune requête combinée ? Comment créer une requête combinée Analyse : cette instruction comprend les deux instructions SELECT précédentes, séparées par le mot clé UNION. UNION demande à MySQL d'exécuter deux instructions SELECT et de combiner la sortie en un seul ensemble de résultats de requête.

Pour référence, voici la même requête utilisant plusieurs clauses WHERE au lieu de UNION :

Entrée :

Dans cet exemple simple, l'utilisation de UNION peut être plus complexe que d'utiliser la clause WHERE. Mais pour des filtres plus complexes, ou lorsque les données sont récupérées à partir de plusieurs tables au lieu d'une seule table, l'utilisation de UNION peut simplifier le processus.
select vend_id,prod_id,prod_price from products where prod_price <= 5 or vend_id in (1001,1002);

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn