作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在sql数据库中有三个表
我需要加入这三个表才能得到这样的表
我想连接三个表以从整个第一、第三和第二(其中排序为 2)表中获取所有数据
我试试这个查询
select table1.Item, table1.Location, table1.Type,
table2.Item, table2.Location, table2.Type,table2.Sort
table3.Item, table3.Location, table3.Type
from table1
full outer join table2
on table1.Item = table2.Item
and table1.Location = table2.Location
and table1.Type = table2.Type
and table2.Sort = '2'
full outer join table3
on table1.Item = table3.Item
and table1.Location = table3.Location
and table1.Type = table3.Type
但我只得到这张表
如何查询得到我想要的所有组合的表?
有什么想法吗?
最佳答案
您的方法是正确的,您所缺少的只是在您的第二个连接条件中使用 coalesce
。
第一个 outer join
将返回一组包含一些 null
值的行,如果您在第三个 join
中使用这些值code> criterias,条件不满足。
您可以使用 coalesce
解决此问题,如果第一个参数为 null
,它将使用第二个参数
select table1.Item, table1.Location, table1.Type,
table2.Item, table2.Location, table2.Type,table2.Sort
table3.Item, table3.Location, table3.Type
from table1
full outer join table2
on table1.Item = table2.Item and
table1.Location = table2.Location and
table1.Type = table2.Type
full outer join table3
on coalesce(table1.Item, table2.Item) = table3.Item and
coalesce(table1.Location, table2.Location) = table3.Location and
coalesce(table1.Type, table2.Type) = table3.Type
where coalesce(table2.Sort, 2) = 2
关于SQL - 全外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42873491/
我是一名优秀的程序员,十分优秀!