Django ORM внутреннее соединение между таблицами, имеющими внешний ключ третьей таблицы - PullRequest
0 голосов
/ 28 марта 2020

Я хочу выполнить внутреннее соединение между таблицами, которые содержат внешний ключ другой таблицы в VIEW.PY

enter image description here

enter image description here

enter image description here

Необработанный запрос, который я пытаюсь сделать в django,

SELECT * 
FROM table3 t3
inner join table2 t2 on t2.C=t3.E
where t2.B=0 and t2.D=t3.F and 
( (t3.G =1234 and t3.H=0) or (t3.H!=0 and t3.G is null) )

как сделать это в django просмотров

1 Ответ

0 голосов
/ 28 марта 2020

Я делаю несколько предположений относительно ваших моделей, поскольку вы их не предоставили, но это должно выполнить sh того, что вы хотите.

from django.db import models
Table3.objects.select_related('table2').filter(
    F=models.F('table2__D'),
    table2__B=0,
).filter(
    models.Q(G=1234, H=0)
    | models.Q(~models.Q(H=0), G__isnull=True)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...