>데이터 베이스 >MySQL 튜토리얼 >MySQL의 연결 쿼리 예제 분석

MySQL의 연결 쿼리 예제 분석

王林
王林앞으로
2023-05-27 14:34:071284검색

    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) ------- Alias ​​​​the 테이블을 개선하고 단순성을 높이고 모호성을 방지하세요

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

    참고:

    테이블에 별칭이 지정된 경우 쿼리된 필드는 원래 테이블 이름으로 한정될 수 없습니다.

    위 두 테이블의 순서는 서로 바뀔 수 있습니다

    (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) 그룹 쿼리 - 각 도시의 부서 수를 쿼리

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

    (6 ) Sort - 직종별 직위명과 직원수를 조회하고, 직원수 내림차순 정렬

    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제