我需要执行 4 个查询,以便根据用户已经表示感兴趣的项目向用户推荐项目:
选择用户已经喜欢的 5 个随机项目
SELECT item_id
FROM user_items
WHERE user_id = :user_person
ORDER BY RAND()
LIMIT 5
选择50个喜欢相同物品的人
SELECT user_id
FROM user_items
WHERE user_id != :user_person
AND item_id = :selected_item_list
LIMIT 50
SELECT所有原始用户喜欢的项目
SELECT item_id
FROM user_items
WHERE user_id = :user_person
选择用户不喜欢向用户推荐的 5 个项目
SELECT item_id
FROM user_items
WHERE user_id = :user_id_list
AND item_id != :item_id_list
LIMIT 5
我想知道的是我将如何将其作为一个查询执行?
我想这样做有几个原因:
- 目前,我必须执行 5 次“选择 50 人”查询并从中选择前 50 人
- 然后我必须执行“选择 5 个项目”查询 50 *(初始用户喜欢的项目数)
执行查询后,我打算将查询结果存储在 cookie 中(如果用户同意我使用 cookie,否则他们根本不会得到“项目建议”),键是查询,这意味着它每天/每周只会触发一次(这就是为什么我返回 5 个建议并随机选择一个键来显示)
基本上,如果有人知道如何将这些查询写成一个查询,你能告诉我并解释查询中发生了什么吗?