我寫了以下代碼:away_fixtures = Fixture.objects.filter(Q(away=home) | Q(home=away)).order_by('-date')[:3]
tips = tips.filter(prediction__fixture__in=away_fixtures)執(zhí)行時(shí)出現(xiàn)以下錯(cuò)誤(我使用的是MariaDB 10.4,不支持子查詢中的LIMIT):django.db.utils.NotSupportedError: (1235, "This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'")當(dāng)執(zhí)行以下代碼時(shí):away_fixtures = Fixture.objects.filter(Q(away=home) | Q(home=away)).order_by('-date')
tips = tips.filter(prediction__fixture__in=away_fixtures)但這會(huì)返回所有“away_fixtures”的“提示”,而我只想要最后 3 個(gè)固定裝置的“提示”(因此將其限制為 3 個(gè)固定裝置)。如何在不切換數(shù)據(jù)庫引擎的情況下實(shí)現(xiàn)這一目標(biāo)?
1 回答

躍然一笑
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
我沒有測(cè)試過,所以我不確定:
away_fixtures = Fixture.objects.filter(Q(away=home) | Q(home=away)).order_by('-date')[:3] tips = tips.filter(prediction__fixture__id__in=[fixture.id for fixture in away_fixtures])
我認(rèn)為問題來自于將子查詢限制為三個(gè),away_fixtures
因此我嘗試強(qiáng)制評(píng)估第一個(gè)查詢以獲取 id,然后通過過濾這些 id 來強(qiáng)制評(píng)估第二個(gè)查詢。
添加回答
舉報(bào)
0/150
提交
取消