mysql 표준쿼리에 대한 질문이 있습니다. 0 3 1,245

by grape111 [MySQL] mysql [2014.11.01 12:38:02]


안녕하세요 mysql 표준쿼리에 대한 질문이 있습니다. 오라클만 주로 짜다보니 mysql은 익숙하지가 않아서요

 

SELECT A.*,B.*,C.* FROM ADDRESS A LEFT JOIN CITY B ON A.CITY_ID = B.CITY_ID
, COUNTRY C WHERE B.COUNTRY_ID = C.COUNTRY_ID

이 쿼리와
 

SELECT A.*,B.*,C.* FROM ADDRESS A LEFT JOIN CITY B ON A.CITY_ID = B.CITY_ID
INNER JOIN COUNTRY C ON B.COUNTRY_ID = C.COUNTRY_ID

이쿼리는 기능이 동일한가요?

 단지 COUNTRY 를 표준으로 하고 안하고 차이인데 where절에 조건을 주는거와 on 뒤에 조건을 주는것이 같은 기능인지 궁금합니다. 답변부탁드립니다.

by 은경이 [2014.11.03 13:49:36]

흠..... 질문하신 내용은 mysql 표준 쿼리에 대한 것이라기 보다 ANSI SQL 표준에 대한 얘기라. 그것에 대해 말씀드리면,

ON은 조인 조건을 기입하는 부분이구요.

WHERE은 조인 이후에 대상 레코드들에 대한 조건을 기입하는 부분을 의미합니다.

그래서, 그 조건이 어디에 있던 조인할때 걸리던 그 이후에 걸리던 그 차이일텐데....제가 알고 있기로 어차피 DBMS마다  쿼리 재구성을 하기 때문에 그런것에 영향을 받아서 얼마나 더 성능이 좋냐의 차이일 뿐 다른 차이는 없는 것으로 알고 있어요~~

 

 


by 마농 [2014.11.03 15:29:23]

사용하신 쿼리는 이도 저도 아닌 어중간한 쿼리네요.
표준으로 통일하든지? 그냥(?)으로 통일하든지? 하는것이 바람직해 보입니다.


On 절은 조인조건을 기술해주는 부분이고
Where 절은 필터조건을 기술해부는 부분으로 구별하시면 됩니다.


outer Join 의 경우 조건이 On 에 오는것과 Where 에 오는것은 큰 차이가 있습니다.
위에서는 Inner Join 이므로 차이가 없습니다.


by 은경이 [2014.11.03 18:49:22]

위의 쿼리만 보고 outer 시 생각을 못했네요~~ ㅋㅋ

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입