Maison >base de données >tutoriel mysql >Syntaxe d'opération de base couramment utilisée de MySQL (8)~~Résultats de fusion de requêtes de tables multiples et requête de jointure interne [mode ligne de commande]

Syntaxe d'opération de base couramment utilisée de MySQL (8)~~Résultats de fusion de requêtes de tables multiples et requête de jointure interne [mode ligne de commande]

黄舟
黄舟original
2017-03-03 14:17:281585parcourir

1. Utilisez union et union all pour fusionner deux résultats de requête : select field name from tablename1 union select field name from tablename2


Notez que cette opération est effectuée. doit s'assurer que les champs des deux tables sont les mêmes et que les types de données des champs sont également les mêmes. De plus, lors de l'utilisation de l'union, les enregistrements en double (identiques) seront supprimés, mais pas l'union all.

Remarque : les requêtes de jointure suivantes impliquent le concept de produit cartésien, c'est-à-dire que s'il y a deux tables, la première a n enregistrements et l'autre table a m enregistrements, alors le nombre d'enregistrements obtenus par le produit cartésien est n*m ; si le nombre de champs dans la première table est a et le nombre de champs dans l'autre table est b, alors le nombre de champs obtenu par le produit de Descartes est a b.

2. Utiliser la jointure naturelle : Le principe est que les deux tables ont les mêmes champs : (Cette opération supprimera les champs en double)


Pour cette requête, ma compréhension est la suivante : conserver les données qui existent dans les champs associés (tels que Department_id ici) dans ces deux tables et supprimer les données qui existent dans une seule table :


Comme le montre le contenu ci-dessus, il y a quatre éléments de données dans company et 7 éléments dans emp. Par conséquent, peu importe celui qui est placé devant, seuls six éléments sortent car le part_id in. company est 4 mais pas dans emp, et le part_id dans emp est 5. , et il n'y en a pas dans company.

3. Jointure interne sur requête de jointure équivalente :


D'après ma compréhension, la différence entre cette opération et la jointure naturelle ci-dessus est qu'elle n'est pas supprimé Les champs répétés sont plus flexibles et ne nécessitent pas de champs avec le même nom de champ :


4.


Pour cette requête, je crois comprendre qu'il s'agit du complément de la requête "=", c'est-à-dire l'ensemble de résultats de cette requête = ensemble de résultats du produit cartésien moins " ="L'ensemble de résultats de la requête ; dans cet exemple, company a 4 enregistrements, emp a 7 enregistrements et le produit cartésien est 4*7=28 enregistrements ;"="Le résultat de la requête est 6 enregistrements, une fois" != "La requête doit porter sur les 22 enregistrements restants.

5. Un autre type de requête peut être étendu à partir de l'opération ci-dessus : la requête de connexion de mots, c'est-à-dire qu'il n'y a en fait qu'une seule table, et elle peut être utilisée comme deux en renommant :


Comme vous pouvez le voir, selon le produit cartésien, il devrait y avoir 4*4=16 résultats, mais à cause des conditions, quatre résultats ont été filtrés.

Ce qui précède est la syntaxe d'opération de base commune de mysql (8)~~Le contenu des résultats de fusion des requêtes multi-tables et de la requête de jointure interne [mode ligne de commande]. Site Web chinois PHP (www.php.cn ) !



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