|
|
1
3
好的,以您的具体示例为基础,我提出了一个不同于其他发布的解决方案(尽管我认为我更喜欢您的解决方案)。这是在MS SQL Server 2005上测试的-您的SQL方言可能需要更改。 首先,一些DDL设置阶段:
使用这些表/行作为基础,此select语句检索所需的数据:
|
|
|
2
1
下面是一个备用SQL语句:
铌。nvl()是一个Oracle函数。如果第一个参数为空,则返回第二个参数,否则返回第一个参数。您没有说您使用的是哪个数据库,但毫无疑问,在所有数据库中都有等价的数据库。 |
|
|
3
0
如果有许多表需要数据,那么必须从中进行选择,这是没有其他方法的。 从您的SQL中,似乎可以从包含表A和表B中的键的表C中获得restuls,因为您正在联合表C上简单select的restuls(其中没有where子句)。在其他任何表中都不存在的一组排他键之后,您在哪里?如果是这样,那么您将需要为表B和表C的selects中的表A的where子句做些什么。 我希望这有道理… |
|
|
4
0
下面是我在SQL Server中的方法。此解决方案生成的逻辑IO应比原始IO少。如果表足够大,我将切换到临时表以启用并行性。
这项技术反映了我将如何处理C中的3个列表。通过创建字典。 |
|
|
5
0
您的查询看起来不错。 或者,您可以使用下面的查询并在客户端进行筛选。对于数据库服务器来说,压力会更小。
|
|
|
6
0
|
|
|
7
0
创建所有键的主表,然后左键将此主表联接到三个表,并研究
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 8 月前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 8 月前 |
|
ojek · 如何对SQL结果进行分组和编号? 8 月前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 8 月前 |
|
|
Sax · 规范化Google表格(第一步) 8 月前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 8 月前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 9 月前 |