Как составить Django Model Filter для существования отношения?
Как я могу выполнить следующий запрос с помощью Django Models?
SELECT * FROM TABLE_A WHERE (SELECT COUNT(id) FROM TABLE_B WHERE TABLE_A.field1 = TABLE_B.field1) > 0
Я хочу выбрать записи из таблицы_A, которые имеют совпадающие записи в таблице_B.
Я нашел решение
C.objects.\
.annotate(num=Count('object_a_As'))\
.filter(num__gt=0)
Выполняется следующий запрос
SELECT
*, COUNT(TABLE_AB.A_id) as "num"
FROM
TABLE_C
LEFT OUTER JOIN
TABLE_AB
ON
TABLE_C.A_id = TABLE_AB.A_id
GROUP BY
TABLE_C.id
HAVING
COUNT(TABLE_AB.B_id) > 0