Rumah  >  Artikel  >  pangkalan data  >  Analisis contoh pertanyaan sambungan dalam MySQL

Analisis contoh pertanyaan sambungan dalam MySQL

王林
王林ke hadapan
2023-05-27 14:34:071224semak imbas

    1 Produk Cartesian

    Jadual 1 mempunyai m baris data, Jadual 2 mempunyai n baris data dan hasil pertanyaan mempunyai m*n baris daripada data.

    2. Klasifikasi

    (1) Klasifikasi mengikut umur

    standard sql92: hanya menyokong cantuman dalaman

    standard sql99 (disyorkan): menyokong cantuman dalaman, Cantuman luar (cantuman luar kiri dan cantuman luar kanan), cantuman silang

    (2) Dikelaskan mengikut fungsi

    Cantuman dalam: Cantuman setara, cantuman bukan setara, cantuman sendiri

    Sambung luar: sambung luar kiri, sambung luar kanan, sambung luar penuh

    sambung silang

    3 sambung setara

    (1) Tanya nama gadis itu dan yang sepadan. Nama teman lelaki

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

    (2) Tanya nama pekerja (nama belakang) dan nama jabatan yang sepadan (nama_jabatan)------------- (pertanyaan berdasarkan id yang berkaitan)

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

    (3) Soal nama pekerja (nama belakang), nombor jenis pekerjaan (job_id), nama jenis pekerjaan (job_title) (jadual pekerja: JDSC work table: JOBSC) ------ Alias ​​​​jadual kepada tingkatkan kesederhanaan , untuk mengelakkan kekaburan

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

    Nota:

    Jika jadual dialiaskan, medan yang ditanya tidak boleh memenuhi syarat dengan nama jadual asal.

    Turutan kedua-dua jadual di atas boleh ditukar ganti

    (4) Soal nama pekerja dan jabatan dengan bonus

    #员工名: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) Pertanyaan kumpulan - Pertanyaan Bilangan jabatan di setiap bandar

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

    (6) Isih - Soal nama kerja dan bilangan pekerja untuk setiap jenis pekerjaan, dan susun mereka dalam tertib menurun mengikut bilangan pekerja

    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) Tiga Sambungan jadual——Pertanyakan nama pekerja, nama jabatan dan bandar

    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%';

    Atas ialah kandungan terperinci Analisis contoh pertanyaan sambungan dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam