2010-10-28 77 views
0
​​

我最終會使用GROUP BY和ORDER BY,但我無法得到上述工作。任何指向正確的方向將非常感謝,謝謝!兩個全文mysql與聯盟搜索,但返回一個不同的字段

這是我最初使用的,但它會返回兩個結果具有相同的sectionID(一個來自節表和一個來自sectioncontent表),因爲相關性字段不相同。

(SELECT sectionID,MATCH (content) AGAINST ('blah') AS relevance 
FROM sectioncontent WHERE MATCH (content) AGAINST ('blah')) 

UNION DISTINCT 

(SELECT sectionID,MATCH (name, description) AGAINST ('blah') AS relevance 
FROM sections WHERE MATCH (name, description) AGAINST ('blah')) 
ORDER BY relevance DESC 


sectionID relevance 
32  6.42576837539673 
32  2.10306763648987 
+0

你能爲你的兩個表的ALTER TABLE,所以我可以在本地創建它們? – 2010-10-28 21:32:22

+0

你能否更詳細地解釋一下爲什麼你要將自己的桌子與自己結合? – 2010-10-28 21:34:07

+0

不確定你的意思是改變。我擁有的是兩個表格,部分和部分內容。部分包含部分名稱,說明以及與該部分相關的其他字段。 – Sam 2010-10-28 21:49:47

回答

0

想通了,這裏是爲別人解決誰可能會遇到這種

SELECT sectionID,sum(relevance) FROM (

SELECT sectionID,MATCH(content) AGAINST ('blah') as relevance 
FROM sectioncontent WHERE MATCH(content) AGAINST ('blah') 

UNION 

SELECT sectionID ,MATCH(name,description) AGAINST ('blah') as relevance 
FROM sections WHERE MATCH(name,description) AGAINST ('blah') 

) as tmptable GROUP BY sectionID ORDER BY relevance DESC 
相關問題