精简版:
如果表 A 和 B 中的两列都有一个共同的标识符,而这两个列又可能在 C 列中有两个值,我该如何映射它们
让我们说:
A
---
1 , 2
B
---
? , 3
C
-----
45, 2
45, 3
使用表 CI 知道 id 2 和 3 属于同一个项目( 45 ),因此“?” 表 B 中应为 1。
什么查询可以做这样的事情?
编辑
长版省略。这真的很无聊/令人困惑
编辑
我在这里发布一些输出。
从这个查询:
select distinct( rolein) , activityin from taskperformance@dm_prod where activityin in (
select activityin from activities@dm_prod where activityid in (
select activityid from activities@dm_prod where activityin in (
select distinct( activityin ) from taskperformance where rolein = 0
)
)
)
我有以下部分:
select distinct( activityin ) from taskperformance where rolein = 0
输出:
http://question1337216.pastebin.com/f5039557
select activityin from activities@dm_prod where activityid in (
select activityid from activities@dm_prod where activityin in (
select distinct( activityin ) from taskperformance where rolein = 0
)
)
输出:
http://question1337216.pastebin.com/f6cef9393
最后:
select distinct( rolein) , activityin from taskperformance@dm_prod where activityin in (
select activityin from activities@dm_prod where activityid in (
select activityid from activities@dm_prod where activityin in (
select distinct( activityin ) from taskperformance where rolein = 0
)
)
)
输出:
http://question1337216.pastebin.com/f346057bd
以来自第一个查询(来自任务性能 B)的 335 中的活动为例。
它存在于 A 的活动中。
但不是在A中的taskperformance(而是a的相关活动:92、208、335、595)
存在于结果中。中对应的作用是:1