Implementoval jsem opravu pro INNER JOIN pro Django ORM, bude používat STRAIGHT_JOIN v případě objednávky s INNER JOINy. Mluvil jsem s Django core-devs a rozhodli jsme se to prozatím udělat jako samostatný backend. Takže se na to můžete podívat zde:https://pypi.python.org/pypi /django-mysql-fix
Existuje však ještě jedno řešení. Použijte úryvek z Jamesovy odpovědi, ale nahraďte select_related řetězcem:
qs = qs.select_related('').prefetch_related('wheel', 'dealer', 'category')
Zruší INNER JOIN a použije 4 samostatné dotazy:1 pro načtení aut a 3 další s car_id
IN (...).
AKTUALIZACE: Našel jsem ještě jedno řešení. Jakmile zadáte null=True v poli ForeignKey, Django použije LEFT OUTER JOINs namísto INNER JOIN. LEFT OUTER JOIN v tomto případě funguje bez problémů s výkonem, ale můžete čelit jiným problémům, o kterých zatím nevím.