2012-07-27 55 views
0

我有一個單詞表和一個短語表。我想要統計每個單詞包含多少個詞組。計算兩個表格之間的匹配

此查詢給我一個(單詞,短語)對列表;我如何獲得計數?有沒有更有效的方法來做到這一點?

選擇words.word,phrases.phrase

從文字左加入短語

上phrases.phrase RLIKE CONCAT( '(^ | [^ AZ])',words.word,「($ | [^ AZ])');

回答

0

使用現有查詢,您可以添加一個GROUP BY子句和COUNT

SELECT 
    words.word, 
    COUNT(phrases.phrase) as Count 
FROM 
    words 
    LEFT JOIN phrases 
     ON phrases.phrase RLIKE CONCAT('(^|[^a-z])', words.word, '($|[^a-z])') 
GROUP BY 
    words.word 

或者,你可以用一個子查詢,而不是實現這一聯接:

SELECT 
    words.word, 
    (SELECT COUNT(*) 
     FROM phrases 
     WHERE phrase RLIKE CONCAT('(^|[^a-z])', words.word, '($|[^a-z])') 
    ) AS Count 
FROM words 
相關問題