![]() |
1
4
我会考虑在select子句中查询地址,例如:
这个
这种方法的优点是,只要地址上存在一个合适的索引,它的性能可能会比大多数备选方案更好。一旦找到查询的每个建筑的地址,它将停止查找更多的地址。 这种方法的缺点是,如果您希望地址表中有多个列,则不能这样做——尽管您可以将它们连接到一个字符串中。 |
![]() |
2
2
因为您不关心显示多少地址: Oracle 9I+:
非子查询分解等价物:
|
![]() |
3
0
您可以做的是对您加入的地址进行限制。 例如,通过要求没有具有较低ID的地址:
在这种情况下,每个建筑物最多只能有一个地址。 |
![]() |
4
0
或
|
![]() |
5
0
梅里顿, 这种方法使用嵌套的内联视图。我已经在大型数据集上证明了这种方法,它的性能非常好。 理解查询的最佳方法是从最内部的“m”内联视图开始。为了调试和清晰起见,我添加了计数。这确定了最大值(即最近的???)每个建筑物的地址ID:
下一个“a”内联视图使用上面的“m”内联视图来决定要获取哪个地址,然后联接到该地址ID以返回一组地址字段:
上面的“a”内联视图将一组转换后的地址传递给最终查询。当建筑物和地址之间的关系为1到0..n时,建筑物和“a”之间的关系为1到0..1,这是一个基本的外部连接:
这种方法的主要优点是:
享受吧!
|
![]() |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
![]() |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
![]() |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
![]() |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
![]() |
Anar · Oracle SQL用户定义函数 2 年前 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |