Maison  >  Article  >  base de données  >  Analyser l'auto-connexion de MySQL et rejoindre l'association

Analyser l'auto-connexion de MySQL et rejoindre l'association

怪我咯
怪我咯original
2017-04-30 09:34:283361parcourir

Cet article vous présente principalement les informations pertinentes sur l'auto-adhésion et l'association de mysql. Je pense qu'elle a une certaine valeur de référence pour tous les amis. si besoin, cela peut venir ci-dessous. Jetons un coup d'oeil.

1. Auto-connexion mysql

mysql a parfois besoin de se connecter (auto-connexion) lors de l'interrogation d'informations , nous devons donc définir un alias pour la table. Donnons un exemple. Ce qui suit est un tableau d'achat de produits. Nous devons trouver toutes les informations dont le prix d'achat est supérieur à Huihui.

De manière générale, lorsque nous voyons ce tableau, nous utilisons des instructions pour le faire fonctionner le plus rapidement possible :

SELECT * FROM shoping WHERE price>27

Comme vous pouvez l'imaginer, comment compliqué, c'est simple, que se passe-t-il si vous ne connaissez pas les données détaillées de la table de la base de données ou si la quantité de données est assez importante ? En tant qu'administrateur de base de données, nous devons utiliser d'autres méthodes pour trouver rapidement les données dont nous avons besoin.

Requête pas à pas

La manière la plus simple et la plus simple de penser l'opération :

SELECT price FROM shopping WHERE name='惠惠' //得出price查询结果为27
SELECT * FROM shopping WHERE price>27

Par rapport à l'auto- méthode de connexion Par rapport à cette méthode, cette méthode nécessite une intervention manuelle sur les résultats intermédiaires, ce qui n'est évidemment pas propice aux traitements automatiques dans le programme.

Méthode d'auto-connexion :

SELECT b.* 
from shopping as a,shopping as b
where a.name='惠惠' 
and a.price<b.price 
order by b.id

Nous pouvons obtenir les informations de tableau suivantes :


Remarque :

Bien que les alias a et b aient des noms différents, il s'agit de la même table. Le but de la définition des alias est de faciliter leur suppression. .

Le b.* obtenu en exécutant select through (table intermédiaire) est le résultat final.

Sous-requête

La sous-requête est également une méthode couramment utilisée, qui consiste à imbriquer la sélection dans la sélection.

Le code d'implémentation est le suivant :

SELECT * FROM shopping 
WHERE price>(select price from &#39;shopping&#39; where name=&#39;惠惠&#39;)

Les résultats sont les suivants : On constate que les résultats obtenus par les deux méthodes sont les mêmes :


2. REJOINDRE

JOINTION INTÉRIEURE

Le rôle principal L'association interne est lorsqu'il y a au moins une correspondance dans le tableau, renvoie l'ensemble de résultats. La jointure interne et la jointure ici ont la même fonction, elles sont donc introduites ensemble.
Voici deux tableaux, les tableaux de marchandises et de catégories :


SELECT * FROM goods INNER JOIN category 
ON goods.id=category.goods_id 
ORDER BY gods.id

Le résultat ressemble à ceci :

LEFT JOIN

Le mot-clé LEFT JOIN sera de gauche Tous les lignes de la table (nom_table1) y sont renvoyées, même s'il n'y a aucune ligne correspondante dans la table de droite (nom_table2). Il est recommandé d'utiliser l'association gauche lorsque vous travaillez sur des projets. Cependant, il existe de nombreuses relations entre tables. Une table est une jointure gauche à a, mais en même temps une jointure droite à b. Dans ce cas, l'ajout d'une jointure droite peut être plus pratique à écrire.

Appliquer les deux premières tables pour effectuer une requête de jointure à gauche :

SELECT goods.*,category.cate_name 
FROM goods LEFT JOIN category 
ON goods.id=category.goods_id 
ORDER BY goods.id



RIGHT JOIN

Le mot-clé RIGHT JOIN renverra toutes les lignes de la table de droite (table_name2), même s'il n'y a aucune ligne correspondante dans la table de gauche (table_name1 ) . Appliquez les deux premières tables pour effectuer une requête de corrélation correcte :

SELECT a.goods_name,a.price,b.*
FROM goods as a
RIGHT JOIN category as b
ON a.id=b.goods_id
ORDER BY b.id



Pour une corrélation multi-tables, c'est Ajoutez quelques déclarations connexes supplémentaires.

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