我需要从数据库中查找文章,以及邻居的下一个和上一个 id。现在我有 3 个有效的查询——前两个没有 find() 方法——我知道。
$artNext = ArticlesQuery::create()
->filterById(array('min' => $artId + 1))
->filterByActive(1)
->filterByType(1)
->select('Id')
->orderById(Criteria::ASC)
->limit(1);
$artPrev = ArticlesQuery::create()
->filterById(array('max' => $artId - 1))
->filterByActive(1)
->filterByType(1)
->select('Id')
->orderById(Criteria::DESC)
->limit(1);
$article = ArticlesQuery::create()
->filterByActive(1)
->filterById($artId)
->findOne();
我如何组合要插入的 artPrev 和 artNext 子查询,如下面的查询(简化)
select id,
(select id from articles where id<77 ORDER BY id DESC limit 1 ) as prev,
(select id from articles where id>77 ORDER BY id ASC limit 1) as next
from articles
where id=77