用in子句连接两个表

时间:2014-07-20 08:11:55

标签: mysql sql django

所以我有两个包含主键' User'

的模型
class Reviews(models.Model):
    subject_user = models.ForeignKey(User,related_name='reviewed_user')

class Friendship(models.Model):
    head_user = models.ForeignKey(User,related_name='followed')

现在我想查找同样在Friendsip.head_user中的用户的所有评论......这样的事情

SELECT * FROM reviews JOIN friendship WHERE reviews.subject_user_id IN friendship.head_user_id

OR

SELECT * FROM reviews JOIN friendship ON reviews.subject_user_id = friendship.head_user_id

我如何在Django中执行此操作。 SQL(可能不完美)只是为了解释我想要做的事情。

1 个答案:

答案 0 :(得分:0)

使用select related

Reviews.objects.all().select_related('friendship__ head_user_id')

或阅读lookups that span relationship

或者这可能会有所帮助:' F expressions'