从多个类似请求更改,只有id更改为只有一个

时间:2012-07-22 13:03:48

标签: mysql select

我有多次使用不同的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

此请求选择与给定新闻具有相同标签的最后两条新闻。

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

2 个答案:

答案 0 :(得分:1)

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

Here's a generic solution我为每组写了N条记录。

答案 1 :(得分: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。

希望这会有所帮助。