mysql - MYSQL ALL 来自第一个表的行并使用 where 子句连接来自其他表的列
问题描述
我有 2 个表,我想要第一个表的所有行,与第二个表的联合将取决于 2 件事,第一个是ID_NAMES
匹配,第二个是该列为OPENED
零,否则用 null 填充。例子
第一张桌子names
ID_NAMES NAME
1 test1
2 test2
3 test3
4 test4
第二张表surprise
ID_SURPRICE ID_NAMES ELEMENT OPENED
1 3 lion 0
2 2 dog 1
3 1 cat 0
我想要下一个结果
ID_NAMES NAMES ID_SURPRICE ID_NAMES ELEMENT OPENED
1 test1 3 1 cat 0
2 test2 null null null null
3 test3 1 3 lion 0
4 test4 null null null null
我按以下方式执行查询,但它只返回与where
SELECT names.*, surprise.*
FROM names
LEFT JOIN surprise
ON names.ID_NAMES = surprise.ID_NAMES
where surprise.OPENED = 0;
解决方案
我想在这里得到答案:
基本上,如果我添加一个我正在做的地方inner join
,那么我必须将子句移动到on
SELECT names.*, surprise.*
FROM names
LEFT JOIN surprise
ON names.ID_NAMES = surprise.ID_NAMES AND surprise.OPENED = 0;
推荐阅读
- python - 这个方括号语法和字典是什么,在python中可调用?这些
- amazon-web-services - RDS 跨区域写入延迟
- angular - Angular Elements 使用外部通用 Angular 模块
- javascript - python服务器和javascript websockets之间的通信
- java - Gradle:具有依赖项的自定义 JavaCompile 任务
- c# - ASP.NET Core MVC:为什么可选的列表参数永远不会为空?
- python - pytesseract.pytesseract.TesseractNotFoundError: tesseract 未安装或不在您的 PATH 中。有关更多信息,请参阅 README 文件
- union - 使用 union 合并 2 个 TBL 之间的数据
- python - 如何根据列中列表的长度过滤熊猫数据框?
- php - 重定向非 Safari 移动浏览器?