sql - 在 JOIN 子句中使用 WHERE 时也显示空值
问题描述
在以下 SQL 查询方面需要帮助。我有一个客户列表,每个人的进度都存储在验证表中。我需要在游标内使用以下语句并使用record_id
来获取确切的日期,但它只会返回现有值的客户端和小时数。用过LEFT JOIN
,LEFT OUTER JOIN
。没有 WHERE 子句可以完美地工作,但我会得到混合的结果并且无济于事。
SELECT
CLI.id client_id
,CLI.name client_name
,VLD.number_of_hours number_of_hours
FROM
client CLI
LEFT JOIN
validation VLD
ON
CLI.id = VLD.client_id
WHERE
VLD.record_id = 392;
提前致谢 。
解决方案
将右侧表格条件从 移动WHERE
到ON
以获得真实LEFT JOIN
结果。
SELECT
CLI.id client_id
,CLI.name client_name
,VLD.number_of_hours number_of_hours
FROM
client CLI
LEFT JOIN
validation VLD
ON
CLI.id = VLD.client_id
AND
VLD.record_id = 392;
(在 WHERE 中,左连接返回常规的内连接结果。)
推荐阅读
- ios - Xcode 11 beta 上找不到 iPhone 7 模拟器
- laravel - laravel 查看表值而不是使用 $id 到 $ticket_id
- node.js - 删除在 nodejs 10.15.3 中不起作用的 API。获取为“400 错误请求”。它在 nodejs 8.15.3 中工作。节点 10 的修复是什么?
- java - 我读到当你声明两个向量时,语句 b=a 没有我们想要的效果。但我写了一个小程序,它可以工作
- python - 如何将 csv 文件的一列转换为矩阵并为其绘制绘图?
- prismic.io - 有没有办法将数据发送到 prismic.io?
- mysql - 如何为这种输出/问题创建 mysql 语法
- java - 在java中生成6位pin
- unit-testing - 我应该什么时候在安装了 Flask 的 Dockerfile 中执行单元测试和集成测试?
- android - 为什么 tess-two 显示的结果与 tesseract for windows(由 UB Mannheim 提供)对于同一图像显示不同的结果?