Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 如何获得没有视频和照片的所有艺术家?_Mysql_Ruby On Rails 3_Activerecord - Fatal编程技术网

Mysql 如何获得没有视频和照片的所有艺术家?

Mysql 如何获得没有视频和照片的所有艺术家?,mysql,ruby-on-rails-3,activerecord,Mysql,Ruby On Rails 3,Activerecord,我正在尝试让所有没有内容(视频和照片)的艺术家上传。我的查询缺少照片部分。到目前为止,我已经: User.where(:is_artist => true, :is_verified => true).joins('LEFT OUTER JOIN videos ON videos.user_id = users.id').where('videos.id IS NULL').count (8.7ms) SELECT COUNT(*) FROM `users` LEFT OUTER

我正在尝试让所有没有内容(视频和照片)的艺术家上传。我的查询缺少照片部分。到目前为止,我已经:

User.where(:is_artist => true, :is_verified => true).joins('LEFT OUTER JOIN videos ON videos.user_id = users.id').where('videos.id IS NULL').count
(8.7ms)  SELECT COUNT(*) FROM `users` LEFT OUTER JOIN videos ON videos.user_id = users.id WHERE `users`.`is_artist` = 1 AND `users`.`is_verified` = 1 AND (videos.id IS NOT NULL)
但是,上面的查询有点错误,因为:

User.where(:is_artist => true, :is_verified => true).count
返回:1000。第一个查询返回:3000


任何帮助都将不胜感激。

只需运行

User.where(:is_artist => true, :is_verified => true).includes(:videos).count

如果用户与视频有关系,只需运行

User.where(:is_artist => true, :is_verified => true).includes(:videos).count

如果用户与视频有关联

您可以获得所有经过验证的艺术家,而不需要这样的视频:

User.joins('LEFT OUTER JOIN videos ON videos.user_id = users.id').
     where(:is_artist => true, :is_verified => true, 'videos.id' => nil)

您可以获得所有经过验证的艺术家,而无需视频:

User.joins('LEFT OUTER JOIN videos ON videos.user_id = users.id').
     where(:is_artist => true, :is_verified => true, 'videos.id' => nil)

只是好奇,标题中的
update\u all
是否与问题有关?关于查询,在第一种情况下,您执行左外连接,这意味着对于每个用户,您获得的行数与他拥有的视频数相同。因此,计数结果存在差异。如果您试图获取没有视频的用户,则应该是
videos.id为NULL
(没有
而不是
)。尝试得不错,但现在标题是“有视频和照片的艺术家”,而在这个问题上,您指的是“没有内容的艺术家”。你需要哪一个?只是好奇,标题中的
update\u all
与问题有关吗?关于查询,在第一种情况下,您执行左外连接,这意味着对于每个用户,您获得的行数与他拥有的视频数相同。因此,计数结果存在差异。如果您试图获取没有视频的用户,则应该是
videos.id为NULL
(没有
而不是
)。尝试得不错,但现在标题是“有视频和照片的艺术家”,而在这个问题上,您指的是“没有内容的艺术家”。您需要哪一个?这将返回所有用户(满足条件的用户),无论他们是否有视频。这将返回所有用户(满足条件的用户),无论他们是否有视频。照片部分如何?查询需要返回没有照片和视频的所有艺术家添加另一个左外连接和另一个无照片id的条件。不过,这可能会导致一个非常繁重的查询。此外,您上面的查询返回的结果集与我在初始帖子中的查询相同。照片部分呢?查询需要返回没有照片和视频的所有艺术家添加另一个左外连接和另一个无照片id的条件。不过,这可能会导致一个非常繁重的查询。此外,您上面的查询返回的结果集与我在初始帖子中的查询相同。。