【发布时间】:2017-01-28 03:48:17
【问题描述】:
考虑以下 3 个表格。
表一
Col a Col b Col c
1 000 Actual data
1 001 Actual data
2 000 Actual data
3 000 Actual data
3 001 Actual data
3 002 Actual data
表 b
Col a Col b Col d
1 000 Actual data
1 001 Actual data
2 000 Actual data
Table c
Col a Col b Col d
3 000 Actual data
3 001 Actual data
3 002 Actual data
表 a 是父表,表 b 和 c 是子表,其中 col a 和 b 在 3 中通用,需要连接。
现在Join应该是这样的,如果在表b中没有找到数据,那么只应该在表c中搜索它
要求: 可乐 col b col c col d 1 000 一些数据更多数据 1 001 一些数据更多数据 2 000 一些数据更多数据 3 000 一些数据更多数据 3 001 一些数据更多数据 3 002 一些数据更多数据
好吧,目前我正在做的是,将 b 加入 a 并将 c 加入 a,但我认为每次在 a 中的记录都会在 b 和 c 中进行搜索,从而降低成本效益。因此希望使其具有成本效益/微调,以便如果 b 中不存在记录,则仅搜索 c。
【问题讨论】:
-
编辑您的问题并提供示例数据和所需的结果。
-
数据是机密的东西,但结构我有问题
-
@Somesh - 请也添加想要的结果
-
绝对不是标准化的数据库设置,因为重复信息是一种浪费。此外,我建议将所有三个表联合起来,因为数据库引擎的优化器将处理所有不同行的最佳性能返回。
-
添加了所需的数据。要求很简单,表a是你的基表/父表,在表b中搜索记录,如果在表b中没有找到则只在表c中搜索...
标签: sql database oracle join conditional