sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man de generelt mest populære tags fra normaliserede tabeller?

Du kan lave en simpel ændring af din forespørgsel:

SELECT t.id, t.tag, COUNT(*) AS cnt
FROM tags_xref xrf INNER JOIN
     tags t
     ON xrf.tag_id = t.id
GROUP BY t.id, t.tag
ORDER BY COUNT(*) DESC
LIMIT 20;

Formentlig er de forskellige id'er NULL når de ikke er passende. Hvis du af en eller anden mærkelig grund faktisk har gemt værdier i alle tre id'er for en given xref, kan du gøre:

SELECT t.id, t.tag,
       (COUNT(story_id) + COUNT(discussion_id) + COUNT(article_id) ) AS cnt
FROM tags_xref xrf INNER JOIN
     tags t
     ON xrf.tag_id = t.id
GROUP BY t.id, t.tag
ORDER BY cnt DESC
LIMIT 20;



  1. hvordan man sletter duplikerede værdier i mysql-tabel

  2. Hvordan man kan forudse og undslippe enkelt citat ' i oracle

  3. Hurtigste måde at tjekke for eksisterende post, inden du indsætter [mysql_errno()]

  4. Lagring af binære datatyper i SQL Server