Bạn có thể thực hiện một sửa đổi đơn giản cho truy vấn của mình:
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;
Có lẽ, các id khác nhau là NULL
khi chúng không thích hợp. Nếu vì một lý do kỳ lạ nào đó, bạn thực sự đã lưu trữ các giá trị trong cả ba id cho một xref nhất định, bạn có thể thực hiện:
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;