source

=*의 의미는 무엇입니까?

factcode 2023. 10. 1. 22:02
반응형

=*의 의미는 무엇입니까?

마이크로소프트 서버에서 SQL을 추적하려고 합니다.저에게 생소한 컨벤션을 사용하고 있는 조인을 우연히 발견했습니다."무엇을"=*" 심술궂습니까?

WHERE table1.yr =* table2.yr -1

다음 내용:

WHERE t.column =* s.column

...이전 TSQL(pre SQL Server 2005) 외부 조인 구문이며 ANSI JOIN이 아닙니다.

참조:SQL Server 2005 외부 조인 Gotcha

저는 그것이 table1에서 table2까지의 외부 join 조건을 나타내는 오래된 구문이라고 생각합니다.

이전 스타일:

SELECT * FROM table1, table2
WHERE table1.yr =* table2.yr -1

새 스타일(SQL92):

SELECT * FROM table2 
LEFT OUTER JOIN table1 ON table1.yr = table2.yr - 1

이것은 조인을 표현하기 위한 이전 스타일 구문입니다.

코드를 즉시 교체해야 한다는 뜻입니다!이 스타일의 조인은 오른쪽 조인이어야 합니다.안타깝게도 교차 조인으로 해석될 수 있으므로 이 조인을 사용한 결과가 정확하지 않을 수 있습니다.또한 이 구문은 더 이상 사용되지 않으므로 다음 버전의 SQL 서버에서는 사용할 수 없습니다.

이는 *=가 왼쪽 외부 조인인 RIGHT OUTER JOIN에 대한 ANSI SQL 1989 구문입니다.

또한 WHERE 절에 조인 구문을 넣는 것은 SQL 2008에서 더 이상 사용되지 않습니다.http://scarydba.wordpress.com/2009/09/15/no-join-predicate/ <== 이에 대한 시의적절한 기사입니다.

이것은 ANSI SQL92에서 더 이상 사용되지 않는 예전 방식의 조인입니다. 새로운 구문은 동일하지 않은 식으로 조인 테이블을 만드는 INNER와 OUTER JOIN을 사용합니다.

??? 외부 결합은 WHERE 절의 = 대신 =* 기호를 사용하여 지정합니다.

그래요, 그건 왼쪽 바깥쪽 결합에 대한 또 다른 구문입니다.

부터표1.yr = 표2.yr - 1의 왼쪽 외부 결합 표2
SELECT *
FROM table1, table2
WHERE table1.yr =* table2.yr -1

다음과 같은 뜻:

  SELECT *
  FROM
    table2
    LEFT OUTER JOIN
    table1
    ON table1.yr = (table2.yr - 1)

* 구문은 구식으로 간주되며 ANSI 표준과 일치하지 않습니다.

Oracle의 구조는 다음과 같습니다.

  WHERE table1.yr (+)= table2.yr

단순하고 간단하게.SQL-92 외부 조인 연산자입니다(상세 정보)

사용하지 마세요, 아주 오래된 학교인데 레프트조인, 라이트조인이랑 비슷해요.여기서 하는 일은 조인의 어느 쪽이 "부모" 쪽인지를 알려주는 것뿐이므로, 그 쪽 행이 우선적으로 고려됩니다.

SQL 2005에서 이를 실행하려고 하면 호환성 모드에서 실행해야 한다는 오류가 발생합니다.

여기에 바보 같은 대답들이 많습니다.FROM 절을 지정하지 않으셨기 때문에 *=가 왼쪽 또는 오른쪽 바깥쪽 조인을 나타내는지 구분할 방법이 없습니다.

WHERE table1.yr =* table2.yr -1

는 외부 조인에 대한 오래된 구문입니다.그러나 그것이 왼쪽 또는 오른쪽 외부 결합인지를 안다고 주장하는 사람은 누구나 잘못 알고 있습니다.FROM 조항에서 table1과 table2의 이름을 지정하는 순서에 따라 다르며, 그것은 주어지지 않습니다.

언급URL : https://stackoverflow.com/questions/1428144/what-does-mean

반응형