有跡象表明,可以通過一個ID如下表所示引用用戶:電視節目推薦算法和SQL
users:
user_id
我試圖在一個解決方案用於跟蹤的節目意見
tvshow_hits:
user_id|show_id
還有與細節的表吧:
tvshows:
show_id|name
但是,這並不需要我開放的變化。我覺得如果他們看過它,就沒有必要更多地跟蹤個別觀點,因爲不像音樂電視節目和電影只能觀看一次,如果他們再次觀看,他們不會有任何「重量」。
所以現在我會向後工作: 結果頁面應該是這樣的:
人也表手錶
South Park 40%
Family Guy 20%
Something 10%
所以,我需要的是一個查詢(如需要)PHP代碼
選擇的節目(在P DESC),的量的順序人們看着它相比於其他節目(已被觀看了誰看過用戶)以百分比形式P誰WHERE顯示(一個或多個)已經被觀看了誰看過用戶極限X1
我希望這是有道理的,這是我解釋它的最好方式,隨時想想另一種方法來做我想做的事情。所有建議和幫助歡迎。
SQL查詢: SELECT tvshows。名稱,計數(1) FROM tvshows WHERE USER_ID IN( SELECT user_id說明 FROM tvshow_hits WHERE show_id = @show_id ) GROUP BY tvshows.name LIMIT 0,30 MySQL表示: #1054 - 在未知列'USER_ID 'IN/ALL/ANY子查詢' 然而tvshow_hits和用戶都有一個山坳的user_id。 – steven 2009-11-23 10:03:50
我想這是因爲你從tvshows表中選擇而不是showhitdetails視圖。 (我更新了我的答案以顯示此內容) – jammus 2009-11-23 10:08:37
感謝您的回覆:我編輯了我的問題以反映我的實際表名,並且修復了一些列。這是我剛使用的查詢:SELECT tvshows.name,計數(1)AS no_users FROM tvshows WHERE USER_ID IN(SELECT USER_ID FROM tvshow_hits WHERE show_id = @show_id)AND show_id <> @show_id GROUP BY tvshows.name ORDER BY no_users DESC但它仍然給我和以前一樣的錯誤。 – steven 2009-11-23 10:22:08