好的,这是我的初稿:
SELECT article_id, count(*) as common_term_count FROM
(
SELECT article_id FROM tags WHERE tag IN
(SELECT tag FROM tags WHERE article_id = :YourArticle)
UNION ALL
SELECT article_id FROM categories WHERE category IN
(SELECT category FROM categories WHERE article_id = :YourArticle)
) AS accumulator_table
GROUP BY article_id ORDER common_term_count DESC
我认为这是有效的MysqL语法。