Heim  >  Artikel  >  Datenbank  >  Analyse von Beispielen für Verbindungsabfragen in MySQL

Analyse von Beispielen für Verbindungsabfragen in MySQL

王林
王林nach vorne
2023-05-27 14:34:071224Durchsuche

    1. Kartesisches Produkt

    Tabelle 1 enthält m Datenzeilen, Tabelle 2 enthält n Datenzeilen und das Abfrageergebnis enthält m*n Datenzeilen.

    2. Klassifizierung

    (1) Klassifizierung nach Alter

    sql92-Standard: unterstützt nur innere Verknüpfungen

    sql99-Standard (empfohlen): unterstützt innere Verknüpfungen, äußere Verknüpfungen (linke äußere Verknüpfung und rechte äußere Verknüpfung), Kreuzverknüpfungen

    (2) Nach Funktion klassifiziert

    Innere Joins: Äquivalente Joins, nicht äquivalente Joins, Selbst-Joins

    Äußere Joins: Linke äußere Joins, rechte äußere Joins, vollständige äußere Joins

    Kreuz-Joins

    3. Äquivalente Joins

    (1) Fragen Sie den Namen des Mädchens und den Namen ihres entsprechenden Freundes ab Zuordnungs-ID-Abfrage)

    SELECT 
        girlname,
        boyname
    FROM
        boys,
        girls
    WHERE
        girls.boyfriend_id=boys.girlfriend_id;

    (3) Fragen Sie den Mitarbeiternamen (last_name), die Jobnummer (job_id), den Jobnamen (job_title) ab (Mitarbeitertabelle: JDSC-Arbeitstabelle: JOBSC) ------- Alias ​​​​der Tabelle und verbessern Sie sie. Einfachheit und Vermeidung von Mehrdeutigkeiten.

    Die Reihenfolge der beiden oben genannten Tabellen ist austauschbar

    (4) Fragen Sie die Namen von Mitarbeitern und Abteilungen mit Prämien ab

    SELECT 
        last_name,
        department_name
    FROM
        JDSC,
        SNSC
    WHERE
        JDSC.`id`=SNSC.`id`;
    (5) Gruppenabfrage – Fragen Sie die Anzahl der Abteilungen in jeder Stadt ab

    #"e.job_id"是为了避免歧义
    SELECT
        last_name,
        e.job_id,
        job_title
    FROM
        ESC e,
        JOBSC j
    WHERE
        e.`job_id`=j.`job_id`;

    (6) Sortieren – Fragen Sie den Jobnamen und die Anzahl der Mitarbeiter für jeden Jobtyp ab und sortieren Sie in absteigender Reihenfolge nach der Anzahl der Mitarbeiter

    #员工名:last_name
    #部门名:department_name
    #奖金率:commissiom_pct
    SELECT
        last_name,
        department_name,
        commissiom_pct
    FROM
        employees e,
        department d
    WHERE
        e.`department_id`=d.`department_id`
    AND
        e.`commissiom_pct` IS NOT NULL;

    (7) Drei-Tabellen-Verbindung – Fragen Sie den Mitarbeiternamen, den Abteilungsnamen und die Stadt ab, in der sie sich befinden

    #城市分组表名:city
    #部门分组表名:departments 
    SELECT
        COUNT(*) 个数,
        city
    FROM
        departments d,
        locations l
    WHERE
        d.`location_id`=l.`location_id`
    GROUP BY
        city;

    Das obige ist der detaillierte Inhalt vonAnalyse von Beispielen für Verbindungsabfragen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen