gpt4 book ai didi

SQL - 全外连接

转载 作者:行者123 更新时间:2023-12-04 16:04:02 26 4
gpt4 key购买 nike

我在sql数据库中有三个表

enter image description here

我需要加入这三个表才能得到这样的表

enter image description here

我想连接三个表以从整个第一、第三和第二(其中排序为 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

但我只得到这张表

enter image description here

如何查询得到我想要的所有组合的表?

有什么想法吗?

最佳答案

您的方法是正确的,您所缺少的只是在您的第二个连接条件中使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com