Sybase データベースへのクエリで *= 演算子を使用するコードを保守していますが、ドキュメントが見つかりません。*= の機能を知っている人はいますか? ある種の結合だと思います。
select * from a, b where a.id *= b.id
これが次のものとどう違うのかわかりません:
select * from a, b where a.id = b.id
内側テーブルと外側テーブル
外部表および内部表という用語は、外部結合における表の配置を表しています。
左結合では、外側のテーブルと内側のテーブルはそれぞれ左と右のテーブルです。外部テーブルと内部テーブルは、それぞれ行保存テーブルと NULL 提供テーブルとも呼ばれます。
右結合では、外側のテーブルと内側のテーブルはそれぞれ右と左のテーブルです。
たとえば、次のクエリでは、T1 が外部テーブルで、T2 が内部テーブルです。
または、Transact-SQL 構文を使用します。
これは外部結合を意味し、単純な = は内部結合を意味します。
*= 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 に b.id = a.id の行がない場合、b の列を null で埋めます。