【发布时间】:2020-09-28 15:58:12
【问题描述】:
我正在使用以下代码获取航程类型及其各自航程的分组列表。
public function getVoyageTypesWithTrips() {
//query
$this->db->query('
SELECT voyagetype_name
, voyagetype_description
, voyagetype_image
, voyage_id
, voyage_name
, voyage_startDate
FROM voyagetypes
LEFT
JOIN voyages
ON voyagetypes.voyagetype_id = voyages.voyage_type
WHERE voyagetype_deleted != 1
');
//get the results
$results = $this->db->resultSetGrouped();
return $results;
}
//get results set as array of objects - grouped
public function resultSetGrouped() {
$this->execute();
return $this->statement->fetchAll(PDO::FETCH_GROUP);
}
我想要做的是将航程表限制为仅显示到今天最接近的 3 条记录,而不是返回该类型的所有航次。
所以回来
- 1 类(下周航程,下周航程,下周航程,没有更多,但在桌子上装载)
- 2 类(明天启航,此类别不再)
- 第 3 类(无航次)
我最初尝试了 ORDER BY 和 LIMIT,但我认为这不适用于 PDO::FETCH_GROUP。
我相信我需要在发送到 fetch_group 之前让我的 SQL 订单和限制加入的表???所以像
$this->db->query('
SELECT voyagetype_name
, voyagetype_description
, voyagetype_image
, voyage_id
, voyage_name
, voyage_startDate
FROM voyagetypes
LEFT
JOIN voyages
ON voyagetypes.voyagetype_id = voyages.voyage_type
APPLY THE SORT AND LIMIT TO THE JOINED TABLE
WHERE voyagetype_deleted != 1
');
【问题讨论】:
标签: php mysql date join greatest-n-per-group