我有文章关键字表:
id INT
keyword VARCHAR
我有一篇文章ID,让我们说13.这篇文章在这个表中有4个关键字。 我正在尝试将其他文章分享到两个或更多关键字。
我可以使用此查询获取与原始文章具有相同关键字的文章列表:
SELECT id FROM table WHERE keyword IN (SELECT keyword FROM table WHERE id=13)
但是这只给了我一份包含至少一个关键字的所有文章的列表...但是我需要分享2个或更多关键字的文章,最好按大多数情况排序降序......
我如何实现这一目标?
答案 0 :(得分:0)
SELECT id
, Count(*) As number_of_keywords
FROM articles
INNER
JOIN keywords
ON keywords.keyword = articles.keyword
GROUP
BY id
HAVING Count(*) >= 2
答案 1 :(得分:0)
DECLARE @original_id int = 13
SELECT
id,
COUNT(*) c
FROM keywords k1
INNER JOIN (
SELECT keyword
FROM keywords
WHERE id = @original_id
) k2 ON (k1.keyword = k2.keyword)
GROUP BY id
HAVING COUNT(*) > 1
ORDER BY c DESC, id