Sql 与多行合并以进行全文搜索
请仔细阅读,因为我的英语不好,而且这个问题没有一个简单的答案 我有这样一个简单的结构:Sql 与多行合并以进行全文搜索,sql,Sql,请仔细阅读,因为我的英语不好,而且这个问题没有一个简单的答案 我有这样一个简单的结构: table nodes ------------------------ nodeId | name 1 | Mazda Miata 2.0 2 | Red Cars 3 | Mazda Cars 4 | Sport cars table associations ------------------------ nodeId | ha
table nodes
------------------------
nodeId | name
1 | Mazda Miata 2.0
2 | Red Cars
3 | Mazda Cars
4 | Sport cars
table associations
------------------------
nodeId | hasNodeId
1 | 2
1 | 3
1 | 4
3 | 4
3 | 1
nodeId | name | fulltextRelevSUM
1 | Mazda Miata 2.0 | 9.7
9.7 = 4.2 + 2.3 + 3.2
SELECT
nodeId, name, SUM(fulltextRelevSUM) AS fulltextRelevSum
FROM
/*your already done work here*/
GROUP BY nodeId
我想根据表“associations”指定的内容,选择第一个表中连接(在同一行中)所有关联行的任何行
问题是,将一个节点与一个节点连接在一起,可以得到单个关联节点的全文相关性:我想要的是所有关联节点的相关性
多谢各位
编辑时,连接结果应与您想象的一样,使用全文搜索:
nodeId | name | joinedName | fulltextRelev
1 | Mazda Miata 2.0 | Red Cars | 4.2
1 | Mazda Miata 2.0 | Mazda Cars | 2.3
1 | Mazda Miata 2.0 | Sport Cars | 3.2
前一个是一个抽象表,我真正想要的是得到唯一/不同的nodeId,以及前一个表的fulltextRelevance的总和。。。像这样:
table nodes
------------------------
nodeId | name
1 | Mazda Miata 2.0
2 | Red Cars
3 | Mazda Cars
4 | Sport cars
table associations
------------------------
nodeId | hasNodeId
1 | 2
1 | 3
1 | 4
3 | 4
3 | 1
nodeId | name | fulltextRelevSUM
1 | Mazda Miata 2.0 | 9.7
9.7 = 4.2 + 2.3 + 3.2
SELECT
nodeId, name, SUM(fulltextRelevSUM) AS fulltextRelevSum
FROM
/*your already done work here*/
GROUP BY nodeId
您只需按节点ID进行分组,如下所示:
table nodes
------------------------
nodeId | name
1 | Mazda Miata 2.0
2 | Red Cars
3 | Mazda Cars
4 | Sport cars
table associations
------------------------
nodeId | hasNodeId
1 | 2
1 | 3
1 | 4
3 | 4
3 | 1
nodeId | name | fulltextRelevSUM
1 | Mazda Miata 2.0 | 9.7
9.7 = 4.2 + 2.3 + 3.2
SELECT
nodeId, name, SUM(fulltextRelevSUM) AS fulltextRelevSum
FROM
/*your already done work here*/
GROUP BY nodeId
我不完全理解你的文本相关性部分。你能进一步解释一下吗?上面的查询将为您提供所需的前4行,第二部分的查询应该很简单我认为最好首先显示您自己的问题解决方案,或者至少显示预期的输出。我不知道如何解决,很明显,我无法将行数未定义的行连接起来,但可能使用GROUP BY或类似的方法,我可以获得全球全文相关性1 |马自达Miata 2.0 |相关性2.3 |“马自达”。。。。1 |马自达Miata 2.0 |相关性4.4 |“红色”等。。。我想要一个单独的行,它给了我相关性2.3+4.4,因为我想要按全局相关性进行排序。您想要的输出是什么?请编辑您的问题并将其放在那里,这将有助于对齐对不起,我不清楚。。。为了我的英语!编辑主要question@toPeerOrNotToPeer你说“我拿不到总数”是什么意思?让我看看你的问题