DBMS/SQL
INNER JOIN(JOIN) 과 LEFT JOIN의 차이점
INNER JOIN은 JOIN하려는 조건칼럼의 데이터가 일치하는 row만 출력 LEFT JOIN은 왼쪽 테이블의 모든 row를 출력하는데, 왼쪽 테이블의 조건칼럼의 데이터가 일치하는 것이 있으면 맞춰서 출력해주고, 없다면 JOIN시키려는 테이블의 데이터는 NULL로 출력된다. -> INNER JOIN 출력결과 row(조건에 맞는 row) + country row에서 조건에 맞지않는 row까지 출력 + 조건에 맞지않는 row의 left join 시킨 table 칼럼의 데이터는 NULL로 출력되는 것을 확인 참고자료 https://www.sqlshack.com/learn-sql-inner-join-vs-left-join/
inner join 사용해서 테이블 연결하기
사용법 too_iot_road테이블 데이터 값 tco_cd_comm테이블 데이터 값 tco_cd_comm이라는 table에 있는 cd칼럼과 cd_grop칼럼을 join해서 too_iot_road 결과값에 cd_desc를 추가하고 싶다. inner join을 사용해서 too_iot_road와 tco_cd_comm을 join시키는데, too_iot_road의 avg_road_stts_grop_cd 값과 tco_cd_comm의 cd_grop의 값이 일치하는 것과 too_iot_road의 avg_road_stts_cd와 tco_cd_comm의 cd 값이 일치하는 것의 tco_cd_comm의 cd_desc값을 같이 출력하려고 한다. 실행코드 select '평균도로노면상태' as avg_road_stts_grop_..
group by로 묶어서 나타내기
select antn_type_nm, sgmt_type_nm,count(*) from opn.too_cctv group by antn_type_nm, sgmt_type_nm, wtcd_stts_nm,event_type_nm 실행결과
select subquery 사용하여 Mapper에서 페이징 처리(rownum 순으로 order(정렬)후)
SELECT 별칭1.* FROM ( SELECT (ROW_NUMBER() OVER (ORDER BY 별칭2.칼럼명 )) AS rownumber, 별칭2.* FROM 테이블명 별칭2 ) 별칭1 WHERE 별칭1.rownumber > (#{page_no}-1)*#{page_size} AND 별칭1.rownumber <= #{page_no}*#{page_size} 별칭2라는 새로운 테이블을 만든뒤 rownum이라는 칼럼을 새로 생성(ROW_NUMBER() 부분)하고, 별칭2의 칼럼과 데이터값들을 모두 넣어준다(별칭2.* 부분). 그것을 다시 별칭1이라고 지정한다. 그러면 별칭1은 기존 테이블에 rownum 칼럼이 합쳐진 테이블이 된다. 그다음 별칭1의 rownumber 칼럼 값(order 되어있음)을 이용해 ..