Inhaltsverzeichnis
Warum Outer-Joins verwendet werden
Einführung in Outer-Joins
Heim Datenbank MySQL-Tutorial So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL

So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL

Jun 03, 2023 pm 03:02 PM
mysql

Warum Outer-Joins verwendet werden

Bevor wir erklären, warum „Outer-Joins“ verwendet werden, werfen wir einen Blick auf einen Datensatz. (Wie folgt:)

So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL

Da Zhang San in der Tabelle keine Abteilungsnummer hat, werden wir ihn vorübergehend als „Zeitarbeiter“ einstufen, was nicht festgelegt ist.

In einem solchen Szenario treten Probleme auf. Wenn wir den Namen jedes Mitarbeiters und die Abteilung, zu der er gehört, im Fall der Verwendung von Inner Join abfragen möchten, weil unsere Verknüpfungsbedingung „Abteilungsnummer“ der „Mitarbeitertabelle“ = „Abteilung der „Abteilungstabellen“-Nummer“ lautet „, „Zhang San“ wird uns fehlen. Obwohl „Zhang San“ keine „Abteilungsnummer“ hat, ist er auch als „Zeitarbeiter“ Mitglied des Unternehmens. Daher muss zur Lösung dieses Problems die Syntax externer Verknüpfungen eingeführt werden, da sonst einige logische Daten verloren gehen .

Einführung in Outer-Joins

Der Unterschied zwischen Outer-Joins und Inner-Joins:

Nur Datensätze, die die Verbindungsbedingungen erfüllen, werden im Ergebnis von angezeigt Datensätze, die die Verbindungsbedingungen nicht erfüllen, werden niemals im Ergebnissatz angezeigt.

Unabhängig davon, ob die Datenverbindungsbedingungen erfüllt sind oder nicht, werden äußere Verbindungen im Ergebnissatz auf besondere Weise angezeigt. (Wenn Sie beispielsweise die oben genannten Informationen zur Abteilungsnummer eines Mitarbeiters abfragen, erfüllt „Zhang San“ bei Verwendung einer inneren Verknüpfung nicht die „Verbindungsbedingungen“ und wird nicht im Ergebnis angezeigt, da „Zhang San“ keine Abteilungsnummer hat set. ; Wechseln Sie zu „Outer Join“ und Sie werden es nicht verpassen) 🎜🎜#Linker Join Mit rechts verbinden

„Linker äußerer Join“ bedeutet, dass während des Join-Vorgangs alle Datensätze in der linken Tabelle beibehalten und mit der rechten Tabelle verbunden werden. Die linke Tabelle wird mit der rechten Tabelle verbunden. Wenn es Datensätze gibt, die die Bedingungen in der rechten Tabelle erfüllen, wird „NULL“ verwendet, um die linke Tabelle zu verbinden.

Der Unterschied zu „Links-Join“ ist „Rechts-Join“. „Rechts-Join“ ist das Gegenteil von „Links-Join“. Es behält alle Datensätze in der rechten Tabelle bei und verknüpft die qualifizierten Datensätze in der linke Tabelle; Wenn die linke Tabelle keine Datensätze enthält, die die Bedingungen erfüllen, verwenden Sie „NULL“, um die rechte Tabelle zu verbinden. So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL

Rechts-Join-SQL-Anweisungsbeispiel:

SELECT 
	e.empno, e.ename, d.dname
FROM
	t_emp e
LEFT JOIN t_dept d ON e.deptno = d.deptno;

-- 在连接的时候仍然是链接 "员工表" 与 "部门表" ,只不过连接关键字由 "JOIN" 变成了 "LEFT JOIN" (下文再为大家详细解释)
-- 两张表的连接条件还是使用 "ON" 关键字去连接的 , 连接条件依然是 "员工表" 的 "部门编号" = "部门表" 的 "部门编号" 

-- LEFT JOIN 为 "外连接" 的 "左外连接" ;(在 "外连接" 中,是分为 "左外连接" 与 "右外连接" 的)

-- 在该SQL语句中 "LEFT JOIN" 左右各有数据表  "t_emp e" 与 "t_dept d" 
-- 所以这里的 "左连接" 的意思就是:保留 左表 的所有记录,然后与 右表 去连接,如果 右表 有符合条件的记录,则正常连接即可;
-- 如果 右表 没有符合条件的连接记录, 右表 则展示 "NULL" 值与 "左表" 去匹配
Nach dem Login kopieren

Hier sehen Sie, dass Sie noch „Zhang San“ herausfinden können Es gibt keine Aufzeichnung der „Abteilungsnummer“. Der Unterschied zwischen „Links-Join“ und „Rechts-Join“ ist also nicht sehr groß.

Äußere Verbindungsübung①

Den Namen jeder Abteilung und die Anzahl der Personen in der Abteilung abfragen? So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL

Diese Frage scheint einfach zu sein, aber es gibt zwei Schwierigkeiten, und es gibt auch Bereiche, in denen leicht Fehler gemacht werden können. Weitere Informationen finden Sie in den Beispielen für SQL-Anweisungen und im schematischen Diagramm unten.

SELECT 
	e.empno, e.ename, d.dname
FROM
	t_dept d
RIGHT JOIN t_emp e ON e.deptno = d.deptno;

-- 这里有个需要注意的地方,就是相较于上文中的 "左连接" ,这里的 "右连接" 左右两张的表的位置做了调换
Nach dem Login kopieren

OK, hier beginnt das Problem.

Bitte achten Sie hier auf die Abteilung „40“ – „OPERATIONS“. In dieser Abteilung gibt es eigentlich niemanden, das heißt, die Anzahl der Personen ist „0“, aber das Seltsame ist Wenn hier Statistiken erstellt werden, wird die statistische Zahl „1“ angezeigt. Warum ist das so? Tabelle, also gruppieren Sie nach „deptno“ in der Tabelle links. (Da die Datensätze der linken Tabelle erhalten bleiben, muss die Gruppierung auch entsprechend der linken Tabelle gruppiert werden. Der nächste Schlüssel ist „COUNT(*)“, der die Anzahl aller gültigen Datensätze zählt. Wenn also alle Datensätze vorhanden sind der linken Tabelle „t_dept“ Wenn der Datensatz mit der rechten Tabelle „t_emp“ verbunden ist, verwendet die rechte Tabelle den Wert „NULL“, um eine Verbindung zur linken Tabelle „t_dept“ herzustellen gültiger Datensatz. Da es sich um einen gültigen Datensatz handelt, ist „COUNT(*)“ das Ergebnis der Statistik „1“. Daher ist es verständlich, dass das statistische Ergebnis von 40 Abteilungen „1“ ist, aber dieses Ergebnis ist nicht das Richtige Wir wollen es lösen. Sehen Sie sich die folgende SQL-Anweisung an. Sie werden diese Angriffe erst bemerken, wenn Sie sie tatsächlich erneut schreiben. (Dies bezieht sich tatsächlich auf „Zhang San“).

Sie denken vielleicht, dass Sie nur einen „linken äußeren Join“ verwendet haben, um alle Datensätze in der Abteilungstabelle beizubehalten und sie hier direkt zu ersetzen. Wäre ein „rechter“ äußerer Join nicht ausreichend? Eigentlich ist das nicht der Fall einfach.

So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQLDie SQL-Anweisung dieser Übung muss mit dem Schlüsselwort „UNION“ implementiert werden. Die Ergebnismengen der Abfrageanweisungen werden zusammengeführt (ohne doppelten Inhalt)

.

"UNION"关键字 在 SQL 语句中的用法如下:

(SQL查询语句) UNION (SQL查询语句) -- 如果存在多条查询语句的话,可以继续使用 UNION 关键字 连接

PS:这里需要注意一下,“UNION” 合并多少个结果集其实无所谓,关键是这些结果集的字段数量和字段的名称必须要相同 。如果说第一个 SQL 查询语句返回的是 10个 字段,第二个返回的是 2个字段 ,这种情况是完全没办法合并的。

(SELECT 
	d.deptno, d.dname, COUNT(e.deptno)
FROM
	t_dept d LEFT JOIN t_emp e 
ON d.deptno = e.deptno
GROUP BY d.deptno)
UNION
(SELECT 
	d.deptno, d.dname, COUNT(*)
FROM
	t_dept d RIGHT JOIN t_emp e 
ON d.deptno = e.deptno
GROUP BY d.deptno);

-- 第一个查询语句,得到的结果集是各个部门的人数。
-- 第二个查询语句,得到的结果集是隶属于各个部门的人数,但是因为 "张三" 是一个没有部门所属的 "临时工"
-- 所以两个查询语句的结果集合并之下没救如下图所示。
Nach dem Login kopieren

So verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL

Das obige ist der detaillierte Inhalt vonSo verwenden Sie äußere Verknüpfungen von Datentabellen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So stellen Sie eine Verbindung zur Datenbank von Apache her So stellen Sie eine Verbindung zur Datenbank von Apache her Apr 13, 2025 pm 01:03 PM

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

CentOS installieren MySQL CentOS installieren MySQL Apr 14, 2025 pm 08:09 PM

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.

See all articles