我需要帮助来编写子查询。
我有一个文章表,其中包含精选和非精选文章的类别。
我想选择特定类别的 4 篇最新精选文章,这些文章不属于任何类别的前 6 篇最新精选文章。这是我做的
select title
from node
where nid NOT IN(select nid from node order by date limit 6)
order by date
limit 4
最佳答案
我记得,IN()
子查询尚不支持 LIMIT
。相反,您需要针对子查询 LEFT JOIN
并在子查询中查找 NULL
:
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
关于Mysql子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565413/