Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 与多行合并以进行全文搜索_Sql - Fatal编程技术网

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你说“我拿不到总数”是什么意思?让我看看你的问题