ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • oracle join
    DataBase/oracle 2020. 3. 16. 00:38

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    /* JOIN */
     
    -- 내부조인 (일반적인 조인)
    select e.first_name, e.last_name, e.email, d.department_name, d.department_id 
    from employees e, departments d 
    where e.department_id = d.department_id  -- JOIN조건이 필요하다!
    order by e.first_name;
     
    SELECT * FROM employees;
    SELECT * FROM jobs;
     
    SELECT emp.first_name, emp.last_name, emp.email, 
           dep.department_id, dep.department_name, 
           job.job_id, job.job_title,
           loc.city
    FROM employees emp , departments dep ,jobs job, locations loc
    where emp.department_id = dep.department_id
      and emp.job_id = job.job_id
      and dep.location_id = loc.location_id
      and loc.city = 'Seattle'-- join 조건과 일반조건이 같이있을 경우 일반조건을 먼저 검색한 후 join으로 넘어간다
      
    -- 셀프조인(내부조인) : 자신의 테이블에서 자신의 컬럼을 조인..?!
    select emp1.employee_id , emp1.first_name,
           emp2.employee_id 상사ID, emp2.first_name 상사이름
    from employees emp1, employees emp2
    where emp1.manager_id = emp2.employee_id ;
     
    -- 외부조인
    SELECT emp.employee_id, emp.first_name,
           dep.department_id, dep.department_name
    from employees emp, departments dep
    where emp.department_id = dep.department_id; -- 총 106개
     
    select * from employees; -- 107명
     
    SELECT emp.employee_id, emp.first_name,
           dep.department_id, dep.department_name
    from employees emp, departments dep
    where emp.department_id = dep.department_id (+); -- 총 107개
     
     
    SELECT emp.employee_id, emp.first_name,
           dep.department_id, dep.department_name,
           loc.city
    from employees emp, departments dep, locations loc
    where emp.department_id = dep.department_id (+)
    and dep.location_id = loc.location_id; -- 총 106개
     
     
    SELECT emp.employee_id, emp.first_name,
           dep.department_id, dep.department_name,
           loc.city
    from employees emp, departments dep, locations loc
    where emp.department_id = dep.department_id (+)
    and dep.location_id = loc.location_id(+); -- 총 107개 
                                              -- 조건이 일치하지않아도 출력하기위해선? 조건마다 (+)설정해두기
     
     
     
     
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

    'DataBase > oracle' 카테고리의 다른 글

    oracle create, drop, alter, truncate  (0) 2020.03.19
    oracle subQuery  (0) 2020.03.19
    oracle group by , having , rollup  (0) 2020.03.15
    oracle 날짜함수, 변환함수, decode, case  (0) 2020.03.15
    oracle 문자형 함수  (0) 2020.03.15

    댓글

Designed by Tistory.