0

この SQL を使用して、いくつかのインデックスを取得します。

select follow 
from unigram 
where alternativeSpelling like 'test' 
order by freq desc 
limit 10;

次に、この SQL を使用して単語を 1 つずつ単語に変換します。

select word 
from wordIdxTranslate 
where word_idx = <one of the indexes from above>

最初のクエリ (「freq」) からのランキング順を保持しながら、これらを 1 つのクエリに結合するにはどうすればよいですか?

4

2 に答える 2

3

テストされていませんが、これでうまくいくはずです:

SELECT word 
FROM unigram, wordIdxTranslate
WHERE 
    unigram.follow=wordIdxTranslate.word_idx
    AND
    unigram.follow IN (SELECT T1.follow 
                       FROM unigram AS T1 
                       WHERE T1.alternativeSpelling LIKE 'test' 
                       ORDER BY T1.freq DESC 
                       LIMIT 10)
ORDER BY freq DESC
于 2012-06-10T16:32:28.703 に答える
1

One option would be to combine the queries with a join, like:

select  word 
from    (
        select  follow 
        ,       freq
        from    unigram 
        where   alternativeSpelling like 'test' 
        order by 
                freq desc 
        limit 10
        ) uni
join    wordIdxTranslate  wit
on      wit.word_idx = uni.follow
order by
        uni.freq desc
于 2012-06-10T16:28:32.757 に答える