[英]Phalcon PHQL GROUP BY error
將GROUP BY
添加到我的查詢時,Phalcon給我一個錯誤-Phalcon \\ Mvc \\ Model \\ Exception:語法錯誤,意外的令牌GROUP,靠近'BY ...
這是我的代碼;
$phql = "
SELECT $dist $ads_model.id AS id, $ads_model.title AS title, $ads_model.description AS description, $ads_model.country AS country, $ads_model.city AS city, $ads_model.latitude AS latitude, $ads_model.longitude AS longitude, $image_model.file AS image
FROM $ads_model
LEFT JOIN $image_model ON $image_model.ad_id = $ads_model.id
WHERE $where
GROUP BY $ads_model.id
$order
";
$ads = $this->modelsManager->executeQuery($phql);
這是正在生成的查詢;
Phalcon\Mvc\Model\Manager->executeQuery(\n SELECT (3959 * acos( cos( radians( xxxx ) ) * cos( radians( \Baseapp\Models\ClassifiedsAds.latitude ) ) * cos( radians( \Baseapp\Models\ClassifiedsAds.longitude ) - radians( xxxx ) ) + sin( radians( xxxx ) ) * sin( radians( \Baseapp\Models\ClassifiedsAds.latitude ) ) ) ) AS distance,
\Baseapp\Models\ClassifiedsAds.id AS id, \Baseapp\Models\ClassifiedsAds.title AS title, \Baseapp\Models\ClassifiedsAds.description AS description, \Baseapp\Models\ClassifiedsAds.country AS country, \Baseapp\Models\ClassifiedsAds.city AS city, \Baseapp\Models\ClassifiedsAds.latitude AS latitude, \Baseapp\Models\ClassifiedsAds.longitude AS longitude, \Baseapp\Models\ClassifiedsImages.file AS image\n
FROM \Baseapp\Models\ClassifiedsAds\n
LEFT JOIN \Baseapp\Models\ClassifiedsImages ON \Baseapp\Models\ClassifiedsImages.ad_id = \Baseapp\Models\ClassifiedsAds.id\n
WHERE \Baseapp\Models\ClassifiedsAds.status = 'active' Having distance <= 100\n
GROUP BY \Baseapp\Models\ClassifiedsAds.id\n
ORDER BY distance ASC\n )
在MySQL中運行查詢的簡化版本可以正常工作。 為什么Phalcon搞砸了GROUP BY
子句? 如果忽略了GROUP BY
則查詢將運行。 如何在PHQL中使用它?
同樣作為一個完全相關的問題:我正在為此使用PHQL,因為Phalcon的分頁似乎不適用於原始MySQL。 有沒有辦法讓Phalcon分頁與原始文件一起使用(無需進行自定義分頁)?
您的條款順序有誤。
您必須在GROUP BY
之后聲明HAVING
子句。
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...]
有關完整示例,請參考mysql文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.