我怀疑答案是“否”,但我想我会问原因,如果答案是“是”,那么我可以从我的代码中消除一大步,让它变得不那么难看。
我有一个看起来像这样的数据库:
user_id | badge_id | value
现在,给定用户在此表中的行数可以是不确定的,因此一个用户可能有 0 行,而另一个用户可能有多达 100 行(永远不会超过这个数)。
目前我有一个非常讨厌的电话,我有 100 个子选择“列”,我为给定用户选择一个特定的 badge_id ......所以它看起来(在伪代码中,像这样)
select user_id as uid,
(select value from badges where badge_id = 1 and user_id = uid) as badge_1,
(select value from badges where badge_id = 2 and user_id = uid) as badge_2
etc etc 98 more times
该查询被周围的(Javascript)代码以编程方式组装为字符串,该代码首先执行初步查询以获取所有各种徽章ID。
我想知道是否有某种方法可以对所有徽章 id 进行选择,然后在 SQL 本身内动态进行上述调用(不使用存储过程)。
欢迎所有想法