Ваш запрос может быть записан в Propel 1.6.3 следующим образом:
<?php
// SELECT * FROM Image WHERE owner = 1 LIMIT 5, 10
$subQuery = ImageQuery::create()
->filterByOwner(1)
->limit(10)
->offset(5)
;
$query = ImageQuery::create()
->addSelectQuery($subQuery, 'I', true)
->withColumn('((I.WIDTH*175)/I.HEIGHT)', 'relativeWidth') // ((I.width*175)/I.height) as relativeWidth
->orderBy('relativeWidth') // default is 'asc'
;
$params = array();
var_dump(\BasePeer::createSelectSql($query, $params));
Вывод:
SELECT I.ID, I.WIDTH, I.HEIGHT, I.OWNER, ((I.WIDTH*175)/I.HEIGHT) AS relativeWidth
FROM (
SELECT image.ID, image.WIDTH, image.HEIGHT, image.OWNER
FROM `image`
WHERE image.OWNER=:p1 LIMIT 5, 10
) AS I
ORDER BY relativeWidth ASC
Обратите внимание: :p1
- это параметр привязки, связанный с владельцемvalue.
Так что создавать сложные запросы с помощью Propel :) очень просто:)
William