Maison  >  Article  >  base de données  >  Qu'est-ce que l'instruction de requête conjointe multi-tables dans MySQL

Qu'est-ce que l'instruction de requête conjointe multi-tables dans MySQL

coldplay.xixi
coldplay.xixioriginal
2020-09-03 14:01:2511467parcourir

L'instruction de requête d'union multi-tables dans MySQL est : [instruction select 1 union [option union] instruction select 2 union [option union] instruction select n]. Les résultats de requête conjointe multi-tables combinent les résultats de requête de plusieurs instructions de sélection.

Qu'est-ce que l'instruction de requête conjointe multi-tables dans MySQL

[Recommandations d'apprentissage associées : tutoriel mysql(vidéo)]

L'instruction de requête conjointe multi-tables MySQL est :

Le résultat de la requête conjointe consiste à combiner les résultats de la requête de plusieurs instructions de sélection.

Vous pouvez utiliser les mots-clés union et union all pour la fusion.

Syntaxe de base :

instruction select 1

union [option union]

instruction select 2

union [union Options]

instruction select n

L'option union a deux options : all (indique que les doublons sont également générés distincts (suppression des doublons, les doublons complets seront supprimés par défaut) ; Lourd)

Les champs des deux tables peuvent être cohérents.

例:
select id,addrid 
from addr 
union all 
select id,addrid 
from student

La signification de la requête conjointe

1. Interrogez la même table, mais avec des exigences différentes

2. de plusieurs tables Exactement la même chose, les données enregistrées (structure) sont également les mêmes

Utilisation de order by dans une requête conjointe

Dans une requête conjointe : order by ne peut être utilisé qu'à la fin, et vous devez utiliser des parenthèses pour l'instruction de requête OK.

例:
---(错误)
select * from student where sex="man" order by score
union
select * from student wherre sex="woman" order by score;
这种情况会报错,因为一个句子中不能有两个order by
---(正确但不符合所需)
select * from student where sex="man" 
union
select * from student wherre sex="woman" order by score;
这种情况是正确的,但是合并又没有意义,他会把之前的sex分好的情况给打乱
---(正确)
(select * from student where sex="man" order by score 
limit 10)
union
(select * from student wherre sex="woman" order by score
limit 10);
在子语句中使用order by,由于优先级的问题,需要将整个子句用()括起来,且必须和limit结合使用,否则不会生效。

Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique formation php !

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