sql - 如何 LEFT JOIN 两个简单的表,但不丢弃第二个表中的数据?
问题描述
我的 SQL:http ://sqlfiddle.com/#!9/350efb/3
我正在尝试 LEFT JOIN 两个表,并在我的查询中过滤它们的值。但是,第二个表中有与第一个表不匹配的行。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
解决方案
推荐阅读
- r - 有没有一种简洁的方法来抑制summary() 显示固定效果(因子变量)?
- mobile - 移动应用程序上的设备时间与服务器时间 - 什么是好的做法
- asp.net-core - 使用 DisplayMetadata Provider 在 ASP MVC Core 中输入掩码
- php - 如何在 PHP 中不使用“eval”来创建动态 IF 语句?
- sql-server - 创建视图时如何执行 IF/ELSE 检查
- java - 使用常规表达式拆分 Java 字符串
- angular-cli - ng 生成组件给出错误“意外的令牌/在 JSON 中的位置 629”
- c++ - 特定参数输入
- php - 当屏幕太大时如何使图像放大而不是拉伸?
- java - 无法实例化类型 Shape。我已经将类标题更改为扩展 Shape。不断收到同样的错误