sql >> Databáze >  >> RDS >> Mysql

vyhledávání podle relevance ve více souvisejících tabulkách

Na základě odpovědi v odkazu, který jste zveřejnili, můžete udělat něco takového

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

Nejsem si jistý, jak dobře by to fungovalo. Možná by bylo lepší podívat se na jiné řešení, jako je Solr, Lucene nebo dokonce úložiště NoSQL.



  1. Jak mohu rekurzivně získat rodičovské ID řádků v této tabulce MySQL?

  2. Připojení k databázi Oracle pomocí SQLAlchemy

  3. Získejte všechna data v měsíci spolu s daty z tabulky

  4. Funkce SQL Row_Number() v klauzuli Where