需要帮助使这个(某种)工作查询更加动态。
我有三个表 myShows、TVShows 和 Users
- 我的节目
- 身份证(PK)
- 用户(FK 到用户)
- 节目(FK 到电视节目)
想接受这个查询并将其更改为一个存储过程,我可以将用户 ID 发送到该存储过程中并让它完成其余的工作......
SELECT showId, name, Count(1) AS no_users
FROM
myShows LEFT OUTER JOIN
tvshows ON myShows.Show = tvshows.ShowId
WHERE
[user] IN (
SELECT [user]
FROM
myShows
WHERE
show ='1' or show='4'
)
AND
show <> '1' and show <> '4'
GROUP BY
showId, name
ORDER BY
no_users DESC
这现在有效。但正如您所看到的,问题出在 WHERE (show ='1' 或 show='4')和 AND ( show <> '1' 和 show <> '4')语句中,这些语句当前是硬编码值,这就是我需要动态的,因为我不知道用户是否需要检查 3 或 30 个节目。
这个过程的效率有多低?这将用于可能获得大量用户的 iPad 应用程序。我目前运行的电影 API (IMDbAPI.com) 每小时点击量约为 13 万次,并且必须进行大量数据库/代码优化以使其快速运行。再次感谢!
如果您想要用于测试的数据库架构,请告诉我。