Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyszukaj pasujące tagi (wyszukiwanie podobieństwa) za pomocą MySQL i ograniczeń

SELECT  c.articleid, COUNT(*) AS ct
    FROM articletag AS b
    JOIN articletag AS c  ON c.tagid = b.tagid
                         AND c.articleid != b.articleid
    WHERE b.articleid = 123
    GROUP BY c.articleid
    ORDER BY ct DESC;

Podczas wyszukiwania tego, co jest „podobne” do 123 (element B w twoim przykładzie), dane wyjściowe powinny

Item-A, 2
Item-C, 1

To jest pełny skan articletag . Dlatego słuchaj wskazówek w mojej dyskusji na temat wiele:wiele mapowania .

Jeśli potrzebujesz uzyskać informacje o artykułach po wykonaniu zapytania, użyj go jako tabeli „pochodnej”; na przykład:

SELECT articles.*
    FROM ( the above SELECT ) AS x
    JOIN articles USING(articleid)
    ORDER BY x.ct DESC;

(Możesz usunąć ORDER BY z wewnętrznego zapytania, ponieważ będzie ignorowane zamiast zewnętrznego ORDER BY .)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie warunku z dwóch kolumn mysql

  2. MySQL — Odzyskaj porzuconą bazę danych schematów wydajności

  3. Klucze obce MySQL

  4. MONTH() Przykłady – MySQL

  5. WYBIERZ Dane z wielu tabel?