Mysql子查询

标签 mysql

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

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

我想选择特定类别的 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/

相关文章:

php - 有没有办法从 mysql 中已知的 id 值向上增加 10 行?

sql - 我如何获得每张发票的价格?

php - "latin1"DB 的 Laravel 编码问题

mysql - 请推荐MySQL Profiler(最好是免费的)

mysql - 左连接或类似查询

android - 如何使 ListView 可点击并从 mysql 数据库中删除数据?

php - MYSQL从异常中删除

java - 将Java连接到MySQL数据库

mysql - 有没有办法让 AWS RDS Public Accessibility = No 但仍然可以在 EC2 实例之外访问?

mysql - 当 LEFT JOINing 两个不同的表时,GROUP CONCAT concats 太多重复值