Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用in子句连接两个表_Mysql_Sql_Django - Fatal编程技术网

Mysql 用in子句连接两个表

Mysql 用in子句连接两个表,mysql,sql,django,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\u用户中所有用户的评

所以我有两个包含主键“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\u用户中所有用户的评论。。。像这样的

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可能并不完美,只是为了解释我要做的事情。

使用“选择相关”

Reviews.objects.all().select_related('friendship__ head_user_id')
或者继续读下去


或者这可能会有所帮助:

Django ORM与SQL有点不同。输出数据应该是什么样子?好的,我需要的是评论对象列表和所有相应的用户对象Severy review有一个subject\u User。在您的回答中,您使用了。all for the Reviews并忽略了subject\u User部分。实际上,我在评论模型中还有很多其他字段,比如tail_user=models.ForeignKeyUser等等。。。所以,它应该像Reviews.objects.all.select相关的“友谊”\uuuuuu head\uu user\uid“,“评论”\uuuu subject\uu user\uid”这个答案很容易让人误解,甚至是错误的。select_related不会以任何方式将外部模型中的列添加到基础对象中。它所做的只是使已经存在的外键关系更有效。据我所知,他只是想加入外键,而不是添加新的culomns,select_related就是这样做的。如果我对这个问题不是很清楚,很抱歉。我用例子重新解释了它