gpt4 book ai didi

sql - 联合、排除或拦截以在选择中使用默认数据?

转载 作者:行者123 更新时间:2023-12-04 10:38:44 28 4
gpt4 key购买 nike

我有三个表,一个是默认值表。

我需要做的是选择 TableA 和 TableB 的值,并从默认值的选择中回填任何缺失的值。

每个表都有一个键和值列。

数据的一个例子可能是这样的:

DefaultTable
-------------
Key1 | Value1
Key2 | Value2
Key3 | Value3
Key4 | Value4
Key5 | Value5

TableA
--------------
Key3 | AValue3
Key5 | AValue5

TableB
--------------
Key1 | BValue1

所以我的最终数据集需要如下所示:

Key1 | BValue1  
Key2 | Value2
Key3 | AValue3
Key4 | Value4
Key5 | AValue5

我试过各种连接,但似乎无法破解它,我们将不胜感激。

谢谢

最佳答案

您可以在此使用LEFT JOIN

SELECT  a.Column1,
COALESCE(b.Column2, c.Column2, a.Column2) Column2
FROM DefaultTable a
LEFT JOIN TableA b
ON a.Column1 = b.Column1
LEFT JOIN TableB c
ON a.Column1 = c.Column1

要进一步了解有关联接的更多信息,请访问以下链接:

输出

╔═════════╦═════════╗
║ COLUMN1 ║ COLUMN2 ║
╠═════════╬═════════╣
║ Key1 ║ BValue1 ║
║ Key2 ║ Value2 ║
║ Key3 ║ AValue3 ║
║ Key4 ║ Value4 ║
║ Key5 ║ AValue5 ║
╚═════════╩═════════╝

引自此链接:Performance comparison with postgresql : left join vs union all (我希望 SQL Server 也一样)。

the query with LEFT JOIN is the best on for taking advantage of indexes. For example, if you'd like to have a sorted result, then the UNION query will be far slowest. Or if your query is a subquery in a main query, then the UNION will prevent any possible exploitation of table [element] indexes. So it will be slow to perform a JOIN or WHERE of such a subquery.

关于sql - 联合、排除或拦截以在选择中使用默认数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15717219/

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