【发布时间】:2012-02-09 06:54:00
【问题描述】:
假设我有Table_A,并且我想在两个字段school_id 和type_id 上将它加入Table_B。在 SQL 中,这看起来像:
SELECT whatever
FROM Table_A
INNER JOIN Table_B
ON (Table_A.school_id = Table_B.school_id
AND Table_A.type_id = Table_B.type_id)
据我了解,Django 通过模型中定义的外键/主键进行连接。因此,如果您要执行A.objects.filter(B__field2="stuff"),除了将Table_B.field2=stuff 放在WHERE 子句中之外,它还将隐式加入A.B_id = B.id。有没有办法代替我选择的键加入,就像上面的 SQL 查询一样?
【问题讨论】:
-
A.B_id=B.id是否因某种原因不正确? -
我不想以这种方式限制它。我想让
Table_A加入Table_B,即使Table_A不是它的孩子 -
您确定这是解决任务的最佳(或唯一)方法吗?你能展示你的模型并描述你想要得到的结果吗?
标签: mysql sql django django-models