Heim > Datenbank > MySQL-Tutorial > Wie kann ich mithilfe von SQL-Joins und -Unions effizient Daten aus mehreren Tabellen abrufen?

Wie kann ich mithilfe von SQL-Joins und -Unions effizient Daten aus mehreren Tabellen abrufen?

Barbara Streisand
Freigeben: 2025-01-24 01:37:12
Original
931 Leute haben es durchsucht

How Can I Efficiently Retrieve Data from Multiple Tables Using SQL Joins and Unions?

SQL-Abfrage zur Rückgabe von Daten aus mehreren Tabellen

Joins und Unions

  • Inner Join: Kombiniert Zeilen aus zwei Tabellen basierend auf einer gemeinsamen Spalte und gibt nur übereinstimmende Zeilen zurück. (Weitere Informationen finden Sie bei Wikipedia)
  • Union: Kombiniert die Ergebnisse mehrerer Abfragen, entfernt jedoch doppelte Zeilen.
  • Left Outer Join: Beinhaltet Alle Zeilen aus der linken Tabelle und übereinstimmende Zeilen aus der rechten Tabelle, nicht übereinstimmende Zeilen aus der rechten Tabelle werden jedoch weggelassen Tabelle.
  • Rechter äußerer Join: Schließt alle Zeilen aus der rechten Tabelle und übereinstimmende Zeilen aus der linken Tabelle ein, lässt jedoch nicht übereinstimmende Zeilen aus der linken Tabelle weg.
  • Intersect: Gibt nur Zeilen zurück, die über mehrere Tabellen hinweg identisch sind. (Nicht von allen Datenbanken unterstützt)

Beispiele

Inner Join: Rufen Sie Daten aus den Tabellen „Autos“ und „Modelle“ ab :

SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
Nach dem Login kopieren

Union: Kombinieren Sie die Ergebnisse zweier Abfragen zu Holen Sie sich alle Sportwagen und Allradfahrzeuge:

SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
WHERE
    m.ID = 1
UNION
SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
WHERE
    m.ID = 3
Nach dem Login kopieren

Left Outer Join: Finden Sie alle Marken und ihre Fahrzeuganzahl, einschließlich Marken ohne Autos:

SELECT
    b.brand,
    COUNT(c.id) AS countOfBrand
FROM
    brands b
LEFT OUTER JOIN
    cars c
ON
    b.ID = c.brand
GROUP BY
    b.brand
Nach dem Login kopieren

Schnittmengen: Rufen Sie nur die Zeilen ab, die hinsichtlich „Farben“ und „Modelle“ identisch sind. Tabellen:

SELECT
    m.model,
    c.color
FROM
    models m
INNER JOIN
    colors c
ON
    m.ID = c.ID
WHERE
    m.model = 'Sports' AND c.color = 'Red'
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SQL-Joins und -Unions effizient Daten aus mehreren Tabellen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage