Maison  >  Article  >  base de données  >  Analyse d'exemples de requêtes de connexion dans MySQL

Analyse d'exemples de requêtes de connexion dans MySQL

王林
王林avant
2023-05-27 14:34:071224parcourir

    1. Produit cartésien

    Le tableau 1 a m lignes de données, le tableau 2 a n lignes de données, la requête les résultats sont m*n lignes de données.

    2. Classification

    (1) Classification par âge

    sql92 standard : prend uniquement en charge les jointures internes

    sql99 standard (Recommandé) : Prend en charge les jointures internes, les jointures externes (jointure externe gauche et jointure externe droite), les jointures croisées

    (2) Classification par fonction

    Inner joins : Jointures équivalentes , jointure non équivalente, auto-jointure

    Jointure externe : jointure externe gauche, jointure externe droite, jointure externe complète

    jointure croisée

    3. Connexion équivalente

    (1) Recherchez le nom de la fille et le nom de son petit ami correspondant

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

    (2) Recherchez le nom de l'employé (nom_de_famille) et le nom du service correspondant (nom_du_département) - ------------(Requête basée sur l'identifiant associé)

    SELECT 
        last_name,
        department_name
    FROM
        JDSC,
        SNSC
    WHERE
        JDSC.`id`=SNSC.`id`;

    (3) Rechercher le nom de l'employé (last_name), le numéro du type de travail (job_id), le nom du type de travail ( job_title) (Table des employés : Feuille de travail JDSC : JOBSC) ------ Donnez un alias à la table pour améliorer la simplicité et éviter toute ambiguïté

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

    Remarque : #🎜🎜 #

    Si un alias est donné à la table, les champs interrogés ne pourront pas être qualifiés par le nom de la table d'origine.

    L'ordre des deux tableaux ci-dessus est interchangeable

    (4) Interroger les noms des employés et des départements bénéficiant de primes

    #员工名: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;

    (5) Regroupement Requête - Recherchez le nombre de départements dans chaque ville

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

    (6) Trier - Recherchez le nom du poste et le nombre d'employés pour chaque type de travail, et triez par nombre d'employés par ordre décroissant #🎜🎜 #
    SELECT 
        job_title,
        COUNT(*)
    FROM
        emloyees e,
        jobs j
    WHERE
        e.`job_id`=j.`job_id`
    GROUP BY
        job_title
    ORDER BY
        COUNT(*) DESC;

    (7) Connexion à trois tables - Rechercher le nom de l'employé, le nom du département et la ville

    SELECT
        last_name,
        department_name,
        city
    FROM
        employees e,
        departments d,
        locations l
    WHERE
        e.`department_id`=d.`department_id`
    AND
        d.`location_id`=l.`location_id`
    AND 
        city LIKE 's%';

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer