【发布时间】:2019-07-16 08:56:09
【问题描述】:
我正在寻找一种在两个(或更多)不同表中查找值时创建相对相关函数的方法。所以我有这样的表
table1:
id weight
1 0.1
2 0.15
3 0.12
6 0.21
table2:
id weight
3 0.09
6 0.2
8 0.1
11 0.13
我需要通过合并这两个表来获得相关函数。相同的行 id 将获得 10 倍的相关性,只有一个表中的 id 的行将获得“权重”相关性。
这是我需要得到的中间表(我的问题是如何制作这样的表):
id1 weight1 id2 weight2
1 0.1 null null
2 0.15 null null
3 0.12 3 0.09
6 0.21 6 0.2
null null 8 0.1
null null 11 0.13
使用此表,我可以根据需要计算相关性,但问题是从这两个表中创建这样的表。你能帮帮我吗?
我尝试了 LEFT JOIN、STRAIGHT_JOIN、LEFT OUTER JOIN,但它们的结果截然不同。
编辑:如果重要的话,我目前设想决赛桌看起来像这样:
id relevance
1 0.1
2 0.15
3 2.1
6 4.1
8 0.1
11 0.13
【问题讨论】:
-
看到 LEFT JOIN 和 LEFT OUTER JOIN 是完全一样的东西,这个断言似乎非常不可信
-
你需要一个 FULL OUTER JOIN,它是 MySQL 不支持的,但它可以被模拟——尽管人们不得不质疑两个表显然存储相同类型的东西是否明智。
-
@Strawberry 这些表实际上是子查询,是的,它们取自同一个表,但“位置”部分非常不同。如何模拟 FULL OUTER JOIN ?
-
出于好奇,最终结果会是什么样子?
-
我想像这样e-wm.org/i/E20190222-150905-001.png 但是最终的关联函数还没有创建。