Heim > Datenbank > MySQL-Tutorial > Analysieren Sie die Selbstverbindung von MySQL und treten Sie der Assoziation bei

Analysieren Sie die Selbstverbindung von MySQL und treten Sie der Assoziation bei

怪我咯
Freigeben: 2017-04-30 09:34:28
Original
3424 Leute haben es durchsucht

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zum Selbstbeitritt und zur Beitrittsvereinigung von MySQL vor. Die Einführung im Artikel ist meiner Meinung nach für jeden, der sie hat, von großem Referenzwert Wenn Sie es brauchen, können Sie es unten finden. Werfen wir einen Blick darauf.

1. MySQL-Selbstverbindung

MySQL muss sich manchmal selbst verbinden (Selbstverbindung), wenn Informationen abgefragt werden , also müssen wir einen Alias ​​für die Tabelle definieren. Lassen Sie uns ein Beispiel geben. Wir müssen alle Informationen finden, deren Kaufpreis höher ist als der von Huihui.

Wenn wir diese Tabelle sehen, verwenden wir im Allgemeinen Anweisungen, um sie so schnell wie möglich zu bedienen:

SELECT * FROM shoping WHERE price>27
Nach dem Login kopieren

Wie Sie sich vorstellen können, wie kompliziert Das ist ganz einfach. Was ist, wenn Sie die detaillierten Daten der Datenbanktabelle nicht kennen oder die Datenmenge ziemlich groß ist? Als Datenbankadministrator müssen wir andere Methoden verwenden, um die benötigten Daten schnell zu finden.

Schritt-für-Schritt-Abfrage

Der einfachste Weg und der einfachste Weg, sich den Vorgang vorzustellen:

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

Im Vergleich zur Selbst- Verbindungsmethode Im Vergleich zu dieser Methode erfordert diese Methode einen manuellen Eingriff in die Zwischenergebnisse, was offensichtlich nicht förderlich für automatische Verarbeitungsvorgänge im Programm ist.

Selbstverbindungsmethode:

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

Wir können die folgenden Tabelleninformationen erhalten:


Hinweis:

Obwohl die Aliase a und b unterschiedliche Namen haben, handelt es sich um dieselbe Tabelle. Der Zweck der Definition des Alias ​​besteht darin, dies zu vereinfachen Löschen Sie die Tabellen selbst.

Das durch Ausführen von „select through“ (Zwischentabelle) erhaltene b.* ist das Endergebnis.

Unterabfrage

Unterabfrage ist auch eine häufig verwendete Methode, bei der select innerhalb von select verschachtelt wird.

Der Implementierungscode lautet wie folgt:

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

Die Ergebnisse sind wie folgt: Es ist ersichtlich, dass die mit den beiden Methoden erzielten Ergebnisse gleich sind:


2. JOIN

INNER JOIN

Die Hauptrolle Die innere Assoziation besteht darin, dass die Ergebnismenge zurückgegeben wird, wenn mindestens eine Übereinstimmung vorhanden ist. Der innere Join und der Join haben hier dieselbe Funktion und werden daher zusammen eingeführt.
Im Folgenden sind zwei Tabellen aufgeführt, die Waren- und Kategorietabellen:


SELECT * FROM goods INNER JOIN category 
ON goods.id=category.goods_id 
ORDER BY gods.id
Nach dem Login kopieren

Das Ergebnis sieht so aus:

LEFT JOIN

Das Schlüsselwort LEFT JOIN wird von links sein Alle Dort werden Zeilen aus der Tabelle (Tabellenname1) zurückgegeben, auch wenn in der rechten Tabelle (Tabellenname2) keine passenden Zeilen vorhanden sind. Es wird empfohlen, bei der Arbeit an Projekten die Linksassoziation zu verwenden. Es gibt jedoch viele Tabellenbeziehungen. Eine Tabelle ist eine Linksverknüpfung zu a, aber gleichzeitig eine Rechtsverknüpfung zu b. In diesem Fall ist das Hinzufügen einer Rechtsverknüpfung möglicherweise bequemer.

Wenden Sie die ersten beiden Tabellen an, um eine Left-Join-Abfrage durchzuführen:

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



RIGHT JOIN

Das Schlüsselwort RIGHT JOIN gibt alle Zeilen in der rechten Tabelle (table_name2) zurück, auch wenn es keine passenden Zeilen in der linken Tabelle (table_name1) gibt ). Wenden Sie die ersten beiden Tabellen an, um eine richtige Korrelationsabfrage durchzuführen:

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
Nach dem Login kopieren



Für die Korrelation mit mehreren Tabellen ist dies der Fall Fügen Sie noch ein paar verwandte Sätze hinzu.

Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Selbstverbindung von MySQL und treten Sie der Assoziation bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage