MySQL での接続クエリの例の分析

王林
リリース: 2023-05-27 14:34:07
転載
1261 人が閲覧しました

    1. デカルト積

    テーブル 1 には m 行のデータがあり、テーブル 2 には n 行のデータがあり、クエリ結果には m*n 行があります。データの。

    2. 分類

    (1) 年齢による分類

    sql92 標準: 内部結合のみをサポート

    sql99 標準 (推奨): 内部結合をサポート、外部結合(左外部結合、右外部結合)、クロス結合

    (2) 機能による分類

    内部結合:等価結合、非等価結合、自己結合

    外部結合: 左外部結合、右外部結合、完全外部結合

    クロス結合

    3. 等価結合

    (1) 女の子の名前とそれに対応する名前をクエリします。彼氏の名前

    SELECT 
        girlname,
        boyname
    FROM
        boys,
        girls
    WHERE
        girls.boyfriend_id=boys.girlfriend_id;
    ログイン後にコピー

    (2) 従業員名 (last_name) と対応する部門名 (Department_name) をクエリします------------- (関連付けられた ID に基づいてクエリします)

    SELECT 
        last_name,
        department_name
    FROM
        JDSC,
        SNSC
    WHERE
        JDSC.`id`=SNSC.`id`;
    ログイン後にコピー

    (3) 従業員名(last_name)、職種番号(job_id)、職種名(job_title)を問い合わせます(従業員テーブル:JDSC作業テーブル:JOBSC) ------ テーブルのエイリアスを作成します。曖昧さを避けるため、簡素性を向上させます

    #"e.job_id"是为了避免歧义
    SELECT
        last_name,
        e.job_id,
        job_title
    FROM
        ESC e,
        JOBSC j
    WHERE
        e.`job_id`=j.`job_id`;
    ログイン後にコピー

    注:

    テーブルに別名が指定されている場合、クエリされたフィールドを元のテーブル名で修飾することはできません。

    上記 2 つのテーブルの順序は入れ替えることができます

    (4) ボーナスのある従業員名と部門名をクエリする

    #员工名: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) グループクエリ-mdash;Query各都市の部署数

    #城市分组表名:city
    #部门分组表名:departments 
    SELECT
        COUNT(*) 个数,
        city
    FROM
        departments d,
        locations l
    WHERE
        d.`location_id`=l.`location_id`
    GROUP BY
        city;
    ログイン後にコピー

    (6) 並べ替え - 職種ごとに職種名と従業員数を問い合わせ、従業員数の多い順に並べ替えます

    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) 3 つのテーブル接続 - 従業員名、部門名、市区町村のクエリ

    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%';
    ログイン後にコピー

    以上がMySQL での接続クエリの例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!