完全外连接不会带来所有结果SQL-Server

Rya*_*don -1 sql sql-server join left-join

我试图从连接中检索所有结果时遇到问题.我在SQL小提琴中设置了一个类似的场景,它可以工作,但在SQL Server中却没有.如果要开具发票或发货,我想为所有内容带来结果.

我在SQL-SERVER中获得的结果是

|  No | Order1 | Shipdate |     No | Order1 |  InvDate |
|-----|--------|----------|--------|--------|----------|
| 111 |    222 | 17-01-18 |    111 |    222 | 24-01-18 |
| 222 |    333 | 18-01-18 |    222 |    333 | 24-01-18 |
Run Code Online (Sandbox Code Playgroud)

即使将连接更改为完全外部,右连接我仍然得到此结果.

我会想,如果我使用全外部它会带来所有结果,不管匹配,但它没有.

我错过了什么来给我完整的外部结果?谢谢

sql小提琴 - http://sqlfiddle.com/#!18/89943/1

Gor*_*off 7

这是您的查询:

SELECT S.No, s.Order1, s.Shipdate, i.No, i.Order1, i.InvDate 
FROM Ship S LEFT JOIN
     Invoice I
     ON s.No=i.No AND s.Order1 = i.Order1
WHERE S.Person = 1;
Run Code Online (Sandbox Code Playgroud)

更改LEFT JOINFULL JOIN不会改变任何内容.该WHERE子句将FULL JOIN转换为a LEFT JOIN,因为该表上的非匹配行具有NULL值并使WHERE条件失败.