문제
Sybase 데이터베이스에 대한 쿼리에서 *= 연산자를 사용하는 일부 코드를 유지 관리하고 있는데 이에 대한 설명서를 찾을 수 없습니다.*= 가 무엇인지 아는 사람 있나요?나는 그것이 일종의 조인이라고 가정합니다.
select * from a, b where a.id *= b.id
이것이 다음과 어떻게 다른지 알 수 없습니다.
select * from a, b where a.id = b.id
해결책
내부 및 외부 테이블
외부 테이블 및 내부 테이블이라는 용어는 외부 조인의 테이블 배치를 설명합니다.
왼쪽 조인에서는 외부 테이블과 내부 테이블이 각각 왼쪽 테이블과 오른쪽 테이블입니다.외부 테이블과 내부 테이블은 각각 행 보존 테이블과 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로 채웁니다.
제휴하지 않습니다 StackOverflow