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