期待通りに外部結合を使用して問合せを処理することに問題があります。LEFT JOIN on Oracle
データは次のとおりです。
TABLE a:
id
1
2
3
TABLE b:
id aid
11 1
12 2
TABLE c:
id bid
21 11
22 12
クエリは次のとおりです。
a.id b.id b.aid c.id c.bid
1 11 1 21 11
2 12 2 22 12
3 null null null null
:
SELECT *
FROM
a
LEFT JOIN
b
ON a.id = b.aid
INNER JOIN c
ON b.id = c.bid
は、私はすべてのa
、可能であれば取得する必要があり、このようなb
とc
、 INNER JOIN
はちょうどの延長です前のLEFT JOIN
が一致したときはになります。
その代わり、私が手:
a.id b.id b.aid c.id c.bid
1 11 1 21 11
2 12 2 22 12
二INNER JOIN
なしの私は予想通り、取得:
a.id b.id b.aid
1 11 1
2 12 2
3 null null
OracleおよびMS SQL Serverの間の結合の異なる定義があるようです。 (間違っている)
予想される結果を得るためにクエリを書く方法を理解できません。
内部での違いはありませんし、私は次のようになり、SQL ServerとOracleの – edc65
間の結合左:
あなたはBの間の結合のための外部結合を使用する必要があり、およびCにもSQL Serverがそれに対して何か異なるものを返した場合。 –
(2番目の)内部ジョイはb.idのヌル値に参加できません。あなたのexpectionは正しくないようです。oracleとms sqlは同じ方法で動作します.for参加する – scaisEdge