조인을 해서 insert를 하려고 합니다.
본문
회사테이블과 예약정보테이블이 있습니다.
회사테이블은 회사정보를, 예약정보테이블은 예약정보를 건별로 저장하고 있습니다.
현재는 2개의 테이블을 조인할 때 '회사이름'을 기준으로 하고 있습니다.
그런데 나중에 동일한 회사명이 있을 수 있다는 생각이 들어서 테이블을 변경하려고 하는데
회사테이블에 있는 회사코드를 기준으로 조인하고 싶습니다.
그래서, 회사이름을 기준으로 회사테이블의 회사코드를 가져와서
예약정보테이블에 회사코드를 저장하려고 하는데
쿼리문을 어떻게 작성해야 할까요?
답변 3
첫째, 회사테이블에서 회사이름을 기준으로 회사코드를 가져오는 쿼리문을 작성해야 합니다. 이를 위해서는 SELECT 구문을 사용하여 회사테이블에서 회사이름과 회사코드를 가져올 수 있습니다.
SELECT company_name, company_code FROM company_table
둘째, 예약정보테이블에 회사코드를 저장하려면, UPDATE 구문을 사용하여 기존의 회사이름을 기준으로 회사코드를 저장할 수 있습니다.
UPDATE reservation_table
SET company_code = (SELECT company_code FROM company_table WHERE company_name = reservation_table.company_name)
위 쿼리문은 reservation_table에서 company_name을 참조하여 company_table에서 company_code를 가져와서 reservation_table의 company_code에 업데이트 한다.
100% 테스트된 쿼리는 아니니, 반드시 db테이블을 백업 후 테스트해보시기바랍니다.
!-->회사명을 사용하는 테이블은 등록시 그냥 검색해서 조회용으로 사용할수 있도록 처리하시면 될듯 하며
해당 회사명의 code 정보를 가져와서 예약정보 테이블에 등록해 주시면 되실듯 합니다.
바로 예약테이블에 저장하는게 아니라면
먼저 회사명으로 조회해서 그 기준으로 코드를 물고와 추가로 정보를 입력받은뒤에
기존에 예약정보에 기입된 데이터 존재여부를 체크해서
그에 따라 없다면 insert 있다면 update 방식으로 적용해 주시면 되실듯 합니다.
회사이름을 기준으로 회사테이블의 회사코드를 가져와서
예약정보테이블에 회사코드를 저장하려고 하는데 ...
==
중복 데이터를 만들지 말고,
필요한 페이지에서
예약 정보 테이블에 있는 회사 코드로
회사 테이블 정보를 조회해서 보여 주시면 되지 않나요?