sql - 为什么 Oracle Left Join 在应该有值的地方返回 null
问题描述
我有这个使用左连接 3 个表的查询。但结果为 null 。
t1
col1 | col2 |
---|---|
AA | 000011 |
AA | 000012 |
AA | 000013 |
BB | 000023 |
t2
col1 | col2 |
---|---|
01 | AA |
01 | AA2 |
01 | AA3 |
02 | BB |
SELECT PMF.Col1,PMF.Col2
FROM (SELECT DISTINCT(col1)
FROM T1) TAS
LEFT JOIN T2 PMF
ON (TAS.col1 = PMF.col2)
LEFT JOIN t3 BU
ON (PMF.col1= BU.col1)
但是如果我运行查询,结果的数量是正确的,但值都是空的。结果
col1 | col2 |
---|---|
无效的 | 无效的 |
无效的 | 无效的 |
预期结果应该是
col1 | col2 |
---|---|
01 | AA |
02 | BB |
行数正确但值为空 ActualResult
解决方案
查看预期结果,您似乎需要从中获取数据,t2
因此您可以使用以下查询:
SELECT distinct PMF.Col1,PMF.Col2
FROM T1 TAS
JOIN T2 PMF
ON (TAS.col1 = PMF.col2)
LEFT JOIN t3 BU
ON (PMF.col1= BU.col1)
推荐阅读
- php - 如何在 postgresql 查询中使用 php 数组中的字符串?
- google-fabric - Fabric Crashlytics 错误 javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException
- android - 如何在没有 div 的情况下使用 jsoup 在 android studio 中解析 ul 、 li 标签并将其显示在回收站视图中?
- github - 是否有适用于所有级别的 Github 开发人员的指南或教程?
- php - laravel 路由:任何页面过期到不活动
- python - 没有名为 'pydot' Python 的模块
- php - 如何使用 php 更改 SVG 图像的填充?
- java - JavaFx Combobox 值表现怪异
- devexpress - DevExpress 报告:如何在 Angular 5、最终用户报告中实现以下要求?
- java - 从十六进制字符串创建 EC 私钥