2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

mysql 에서 table join 예제

Problem> 다음과 같은 정규화 된 표가 주어졌다고 가정하자.
여기서 '편명, 인수' 그리고 '편명, 기종, 도착시간' 의 표를 작성하는 커멘드를 보여라.
Solve>
ず、結果入力するための「Assigntable1」と「Assigntable2」を生成しました。
Step1> 生成されたそれぞれのTABLEFILEDはこのりです。
 Assigntable1 int id, varchar name, varchar origin, varchar dest, varchar plane
 Assigntableint id, varchar name, varchar plane, int due
Step2> 既存にあったTable1Table2から、NUMBER Filed基準にして、TableJoinをいきました。
そのJoinした結果 Assigntable1れました。
Step3> Assigntable1Table2をそれぞれの出発地到着地基準Joinをいきました。
そのJoinした結果 Assigntable2れました。
Step4> Step2Step3いたSQL命令文わせて、適用しました。

Table join을 위해서 임시적으로 결과를 담을 수 있는 테이블을 만드는 것이 가장 필요하다.
'편명, 기종, 도착시간' 을 복수의 표에서 불러와서 join 하는 예를 기준으로 설명하면,
Step1> 먼저, 결과를 입력하기 위한 Assigntable1과 Assigntable2를 생성한다.
생성된 각각의 테이블의 필드는 다음과 같다.
 Assigntable1 int id, varchar name, varchar origin, varchar dest, varchar plane
 Assigntableint id, varchar name, varchar plane, int due
Step2> 기존에 있는 Table1과 Table2로부터, Number Filed를 기준으로 Table Join을 실행한다.
그 후, Join 한 결과를 Assigntable1에 insert 시킨다.
Step3> Assigntable1과 Table2 각각의 출발지와 도착시간을 기준으로 Table Join을 실행한다.
그 후, Join 한 결과를 Assigntable2에 insert 시킨다.
Step4> Step2와 Step3에서 작성된 SQL 명령어를 합쳐서 적용시킨다.

작성과정과 결과의 화면은 다음과 같다.

(왼쪽 상단부터 오른쪽으로 Step1, Step2, Step3, Step4의 결과화면)


작성된 SQL 파일의 내용은 다음과 같다.

insert into assigntable1
select
table1.id,table1.name, table1.origin,table1.dest,table3.plane
from
table1, table3
where
table1.number = table3.number;
insert into assigntable2
select
assigntable1.id,assigntable1.name,assigntable1.plane,table2.due
from
assigntable1,table2
where
assigntable1.origin=table2.origin
and
assigntable1.dest=table2.dest;
문제 1의 (편명, 인수) 를 기준으로 Join 하기 위해서 작성된 SQL 파일의 내용은 다음과 같다.
insert into ex1
select table1.id,table1.name,
table1.number,
table3.plane,
table3.type
from table1,table3
where table1.number=table3.number;
insert into ex2
select ex1.id, ex1.name,table4.people
from ex1,table4
where ex1.plane=table4.plane
and
ex1.type=table4.type;

select * from ex2;

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법