1

我需要帮助来编写子查询。

我有一个文章表,其中包含有特色和非特色文章的类别。

我想挑选特定类别的 4 篇最新专题文章,无论类别如何,它们都不属于前 6 名最新专题文章。这就是我所做的

select title 
from node 
where nid NOT IN(select nid from node order by date limit 6) 
order by date 
limit 4
4

2 回答 2

2

我记得,子查询LIMIT中尚不支持。IN()相反,您需要LEFT JOIN针对子查询并在子查询中查找NULLs:

SELECT title
FROM 
  node
  LEFT JOIN ( SELECT nid FROM node ORDER BY date LIMIT 6 ) nids ON node.nid = nids.nid
WHERE 
  nids.nid IS NULL
  AND node.category = 'some category'
ORDER BY date
LIMIT 4
于 2012-09-24T12:59:00.553 回答
0

假设有点在这里,但你的意思是这样的?

select title 
from node 
where nid NOT IN(select nid from node where featured = 1 order by date desc limit 6) 
and featured = 1
and category = ...
order by date desc
limit 4
于 2012-09-24T12:56:31.717 回答