我試圖讓所有沒有內容(視頻和照片)的藝術家上傳。我的查詢缺少照片部分。到目前爲止,我有:如何讓所有藝術家沒有視頻和照片?
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
任何幫助將是讚賞。
只是好奇,不'標題中的update_all'與這個問題有什麼關係?關於查詢,在第一種情況下,您執行左外連接,這意味着每個用戶您獲得的行數與他擁有的視頻數量一樣多。因此計數結果的差異。如果你想讓用戶沒有視頻,它應該是'videos.id IS NULL',而不是(沒有'NOT')。 – 2012-02-02 12:26:28
對不起,改了它 – 2012-02-02 12:30:15
很好的嘗試,但現在標題說'有視頻和照片的藝術家',而你在談論'沒有內容的藝術家'的問題。你需要哪一個? – 2012-02-02 12:32:59