3
我有了一个一对多的关系到另一个模型的模型,“市场”,“合同”的基础上一个最大值单个子行:获取使用Django ORM
class Market(models.Model):
name = ...
...
class Contract(models.Model):
name= ...
market = models.ForeignKey(Market, ...)
current_price = ...
我会喜欢以各自的最高价格与合约一起获取市场对象。这是我想通过原始SQL做到这一点:
SELECT M.id as market_id, M.name as market_name, C.name as contract_name, C.price
as price from pm_core_market M INNER JOIN
(SELECT market_id, id, name, MAX(current_price) as price
FROM pm_core_contract GROUP BY market_id) AS C
ON M.id = C.market_id
是否有实现这个没有使用SQL的方式?如果有的话,哪一个应该在性能方面更受欢迎?
我假设子查询比两个JOIN更高效,但你说得对,不应该假设;进行基准测试并查看。 – 2009-05-31 14:02:11