2009-11-23 5 views
4

둘 다 어느 사이에 어떤 차이가 내 그것은 또한뿐만 아니라이 방법두 쿼리의 차이점은 무엇입니까?

UPDATE UPLOAD_TEMP 
    SET  UPLOAD_TEMP.Borr_Add_Req = t2.YesNoResponse, 
    FROM UPLOAD_TEMP t1 
    INNER JOIN GB_RequiredFields t2 ON t1.State = t2.StateCode 
    WHERE t1.County_Id = t2.CountyId 
     AND t1.Group_code = t2.Doc_type_group_code 

을 쓸 수 그러나 다음과 같은 방법

UPDATE UPLOAD_TEMP 
    SET  UPLOAD_TEMP.Borr_Add_Req = t2.YesNoResponse, 
    FROM UPLOAD_TEMP t1 
    INNER JOIN GB_RequiredFields t2 ON t1.State = t2.StateCode 
             AND t1.County_Id = t2.CountyId 
             AND t1.Group_code = t2.Doc_type_group_code 

에 의해 결합 조회 코드를 선호하는 방법이 있습니다 쓰고 있어요 .

답변

4

- 추가 지정 여부를 어디에 가입 절 또는 WHERE 별도로 인수.

JOIN 절 내에서 실제로 JOIN을 구성하는 인수와 나중에 WHERE 절에서 모든 다른 인수를 정의하는 방식을 선호합니다. 나에게 깨끗해 보인다.

하지만 기능적으로는 같지만 개인적인 취향의 문제 일뿐입니다.

1

두 쿼리 모두 동일한 결과를 가지므로 SQL Server는 동일한 방식으로 두 쿼리를 처리해야합니다. 그래서 전혀 차이가 없습니다. 단지 당신이 그것을하고 싶은 방법입니다. 당신은 심지어에게 다음과 같은 방법으로 수행 할 수 있습니다 노년 인수의

UPDATE UPLOAD_TEMP 
    SET  UPLOAD_TEMP.Borr_Add_Req = t2.YesNoResponse, 

    FROM UPLOAD_TEMP t1, GB_RequiredFields t2 
    WHERE 
      t1.State = t2.StateCode 
      AND t1.County_Id = t2.CountyId 
      AND t1.Group_code = t2.Doc_type_group_code 
+1

매우 오래된 스타일의 JOIN. 나쁜 습관. – gbn

+1

나도 맘에 안들지만 누가 나쁜 연습을하고 있니? DBMS는 중요하지 않습니다. 단지 가독성을위한 것으로, 과거에 어떻게 사용했는지에 주로 영향을받습니다. – Pesse

+1

@Pesse : 이전 스타일의 외부 조인 * = = *은 SQL Server 2008 이후에 더 이상 사용되지 않으므로 스타일이 완전히 잘못되었습니다. – gbn

관련 문제