0

我使用不同的 ID 多次执行相同的请求:

SELECT n.id 
FROM news n 
JOIN news_tag nt ON r.id=nt.id_news 
WHERE nt.id_tag in (Select t.id_tag from news_tag t where t.id_news=2869) 
ORDER BY r.id DESC 
LIMIT 2

此请求选择与给定新闻具有相同标签的 2 个最新新闻。

我想知道如何执行相同的请求,但只在一个请求中获得多个 ID 的结果!

4

2 回答 2

1

这是一个典型的“每组前 N 个”查询,在您的情况下,“B”为2

这是我为每组 N 条记录编写的通用解决方案。

于 2012-07-22T13:21:15.770 回答
0

您是否尝试过 IN 子句?

http://www.tutorialspoint.com/mysql/mysql-in-clause.htm

如果我做对了,就可以这样做:

SELECT n.id 
FROM news n 
JOIN news_tag nt ON r.id=nt.id_news 
WHERE nt.id_tag in (Select t.id_tag from news_tag t where t.id_news IN (1,2,3,4,5,6)) 
ORDER BY r.id DESC 
LIMIT 2

其中 1,2,3,4 等是文章的 ID。

希望这有帮助。

于 2012-07-22T13:09:56.020 回答