문제

Sybase 데이터베이스에 대한 쿼리에서 *= 연산자를 사용하는 일부 코드를 유지 관리하고 있는데 이에 대한 설명서를 찾을 수 없습니다.*= 가 무엇인지 아는 사람 있나요?나는 그것이 일종의 조인이라고 가정합니다.

select * from a, b where a.id *= b.id

이것이 다음과 어떻게 다른지 알 수 없습니다.

select * from a, b where a.id = b.id
도움이 되었습니까?

해결책

에서 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde160.htm:

내부 및 외부 테이블

외부 테이블 및 내부 테이블이라는 용어는 외부 조인의 테이블 배치를 설명합니다.

  • 왼쪽 조인에서는 외부 테이블과 내부 테이블이 각각 왼쪽 테이블과 오른쪽 테이블입니다.외부 테이블과 내부 테이블은 각각 ​​행 보존 테이블과 Null 제공 테이블이라고도 합니다.

  • 오른쪽 조인에서는 외부 테이블과 내부 테이블이 각각 오른쪽 테이블과 왼쪽 테이블입니다.

예를 들어 아래 쿼리에서 T1은 외부 테이블이고 T2는 내부 테이블입니다.

  • T1 왼쪽 조인 T2
  • T2 오른쪽 조인 T1

또는 Transact-SQL 구문을 사용하여:

  • T1 *= T2
  • T2 =* T1

다른 팁

이는 외부 조인을 의미하고 단순 =는 내부 조인을 의미합니다.

*= is LEFT JOIN and =* is RIGHT JOIN.

(또는 그 반대의 경우 더 이상 사용하지 않아서 계속 잊어버리고 *=를 검색할 때 Google이 도움이 되지 않습니다)

물론 당신은 ~해야 한다 다음과 같이 작성하세요.

SELECT *
FROM a
LEFT JOIN b ON b.id=a.id

a,b 구문은 사악합니다.

ANSI-82 구문

select 
    * 
from 
    a
  , b 

where 
     a.id *= b.id

ANSI-92

select 
    * 
from 
   a
  left outer join b 
      on a.id = b.id
select * from a, b where a.id = b.id

답변을 반환하려면 b.id = a.id인 행이 있어야 합니다.

select * from a, b where a.id *= b.id

b.id = a.id인 b에 행이 없을 때 b의 열을 null로 채웁니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top