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

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

怪我咯
怪我咯Original
2017-04-30 09:34:283409Durchsuche

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

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

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

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;)

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

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



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



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!

Stellungnahme:
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