如何左联接两个简单表,但又不丢弃第二个表中的数据?

时间:2020-04-07 12:56:24

标签: sql

我的SQL:http://sqlfiddle.com/#!9/350efb/3

我试图左联接两个表,并在查询中过滤它们的值。但是,第二个表中的行与第一个表中的行不匹配。如果缺少行,我想返回NULL

预期结果是:

oid bid name              oid    uid  value
1   1   Book 1  Name 1    1      1    User 1 OID 1
2   1   Book 1  Name 2    NULL   NULL NULL
3   1   Book 1  Name 3    NULL   NULL NULL
4   1   Book 1  Name 4    NULL   NULL NULL
5   1   Book 1  Name 5    5      1    User 1 OID 5

但是,在链接中看到的实际结果中,我只有两行。我所有带有NULL的行都没有返回。

问::如何实现我的预期输出?我尝试添加OpeningUser.uid is NULL,但是没有用。

我当前的查询是:

select * from Opening
LEFT JOIN OpeningUser ON Opening.oid = OpeningUser.oid
WHERE Opening.bid=1 AND (OpeningUser.uid=1 OR OpeningUser.uid is NULL)
ORDER BY Opening.oid

0 个答案:

没有答案