sql >> データベース >  >> RDS >> Mysql

複数の関連テーブルにわたる関連性検索

    あなたが投稿したリンクの答えに基づいて、あなたはこのようなことをすることができます

    SELECT id,SUM(relevance) as total_relevance FROM (
    SELECT 
        id, 
        (MATCH(title) AGAINST ('search string')) AS relevance
        FROM Cards
    UNION
    SELECT 
        Cards.id,
        (MATCH(brigade) AGAINST ('search string')) AS relevance
        FROM Brigades 
        INNER JOIN CardBrigades ON Brigades.id=brigade_id
        INNER JOIN Cards ON card_id=Cards.id 
    UNION
    SELECT 
        Cards.id,
        (MATCH(identifier) AGAINST ('search string')) AS relevance
        FROM Identifier 
        INNER JOIN CardIdentifier ON Identifier.id=identifier_id
        INNER JOIN Cards on card_id=Cards.id 
    ) AS combined_search 
    GROUP BY id
    HAVING total_relevance > 0
    

    これがどれだけうまくいくかはわかりません。 Solr、Lucene、さらにはNoSQLストレージエンジンなどの別のソリューションを検討したほうがよい場合があります。



    1. Windows上のODBCアプリケーションをSugarCRMに接続します

    2. MySQLはサブクエリを自動的に最適化しますか?

    3. Djangoの主キーをそのテーブルに固有の別の整数に置き換える方法

    4. エンティティフレームワーク、POCO、およびMySQLを使用するための最良のチュートリアル