본문 바로가기

mssql3

[MySQL] EXCEPT 기능 구현하기 MySQL Version : 5.7 기존 MsSQL 프로젝트을 MySQL로 Porting 작업을 진행하게 된다면 EXCEPT를 언젠가 마주치게 된다. EXCEPT는 차집합의 개념으로 만약 TableA가 있다면 TableA의 Row 중 TableB의 Row와 같지 않거나 TableA 에는 있는데 TableB에는 없는 데이터를 리턴하는 기능을 한다. MySQL 에서는 EXCEPT를 지원하지 않기에 똑같이 기능을 하도록 작성할 수 있다. MsSQL 용 : SELECT USER_ID FROM TABLEA WHERE USER_ID = #{UserId} EXCEPT SELECT USER_ID FROM TABLEB WHERE USER_ID = #{UserId} MySQL 용 : SELECT DISTINCT USER_.. 2022. 1. 19.
[MySQL] MsSQL의 FULL OUTER JOIN 사용하기 MySQL Version: 5.7 MySQL 에서는 FULL OUTER JOIN을 사용할 수 없다. 하지만 FULL OUTER JOIN 과 동일한 기능을 할 수 있다. MySQL에서 FULL OUTER JOIN 이 필요한 경우가 있다면 LEFT OUTER JOIN, RIGHT OUTER JOIN 그리고 UNION 을 사용한다. MsSQL 쿼리 : SELECT * FROM TB1 TB1 FULL OUTER JOIN SELECT * FROM TB2 TB2 ON TB1.CD = TB2.CD MySQL 쿼리 : SELECT * FROM TB1 TB1 LEFT OUTER JOIN SELECT * FROM TB2 TB2 ON TB1.CD = TB2.CD UNION SELECT * FROM TB1 TB1 RIGHT .. 2022. 1. 18.
[MySQL] Error Code: 1093. 해결방법 _DELETE문 Mysql version : 5.7 Error Code: 1093. You can't specify target table '***' for update in FROM clause 현재 프로젝트에서 MsSQL 에서 MySQL로 포팅작업을 한참 하고 있는데 MySQL로 쿼리문을 만들던 도중 1093 오류가 발생했다. 이 오류는 DELETE 문 수행중에 발생했고, INSERT, UPDATE 문에서도 발생한다고 한다. DELETE를 하려는 테이블의 값을 서브 쿼리에 대입하다 보니 발생하는 것 같다. 다음은 오류가 발생되던 쿼리이다. DELETE A FROM DATA_PERMISSION A WHERE USER_ID = '' AND TYPE_CD = '22' AND NOT EXISTS ( SELECT 1 FROM.. 2021. 12. 21.