티스토리 뷰

--조인

/*

SQL에서 데이터를 처리할 때는 단 두개의 집합 간에만 조인 처리되고,

2개의 테이블이 조인되어서 처리된 새로운 테이블이 나열되었더라도 특정 2개의 테이블만

먼저 조인 처리되고, 2개의 테이블이 조인되어서 처리된 새로운 데이터 집합과 남은 한 개의 테이블이 다음 차례로 조인되는 것

(((A join B)join C)join D)

*/


--(1) 등가(equi) 조인

select player.player_name 선수명, team.team_name 소속팀명

from player, team

where player.team_id = team.team_id;


select player.player_name 선수명, team.team_name 소속팀명

from player inner join team

on player.team_id = team.team_id; --inner join


select player.player_name, player.back_no, player.team_id,

       team.team_name, team.region_name

from player, team

where player.team_id = team.team_id;


select player.player_name, player.back_no, player.team_id,

       team.team_name, team.region_name

from player inner join team

on player.team_id = team.team_id;


--테이블명에도 alias를 사용하여 가독성 및 코드의 길이를 줄일 수 있음.

select p.player_name, p.back_no, p.team_id,

       t.team_name, t.region_name

from player p, team t

where p.team_id = t.team_id;


select p.player_name 선수명, p.back_no 백넘버, t.region_name 연고지,

       t.team_name 팀명, p.position

from player p, team t

where p.team_id=t.team_id

      and p.position = 'GK'

order by p.back_no;  



select team.region_name, team.team_name, team.stadium_id,

       stadium.stadium_name, stadium.seat_count

from team, stadium

where team.stadium_id = stadium.stadium_id;


--(2) 비등가(Non-equi) 조인 //자료가 읍슴 ㅠㅠ

select e.name, e.job, e.sal, s.grade

from emp e, salgrade s

where e.sal between s.losal and s.hisal;


--(3) 3개 이상 TABLE JOIN

select p.player_name 선수명, p.position 포지션,

       t.region_name 연고지, t.team_name 팀명,

       s.stadium_name 구장명

from player p, team t, stadium s

where p.team_id = t.team_id

      and t.stadium_id = s.stadium_id

order by 선수명;      

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함