Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите общите най-популярни тагове от нормализирани таблици?

Можете да направите проста модификация на вашата заявка:

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;

Предполага се, че различните идентификатори са NULL когато не са подходящи. Ако по някаква странна причина всъщност сте съхранили стойности и в трите идентификатора за дадена външна връзка, можете да направите:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо този pdo::mysql код се срива на Windows?

  2. MySQLd не стартира след надстройка на brew от 5.6 на 5.7

  3. Импортиране на голяма таблица в MySQL

  4. Как да избера по набор от начални знаци?

  5. Как да внедря функцията запомни ме?