我使用sequel pro从几个表中选择数据。有两件事我需要做,似乎需要某种循环。我从来没有在sql中使用过任何形式的迭代,也找不到初学者级别的资源来学习。
谁能建议如何完成以下两项任务,或者建议一个教程,我可以学习基础知识,并从中找出答案:
任务1:遍历版本历史表,查找在给定日期应用的给定id的相关历史记录,并从该记录中选择值。历史表的形式是:
- id, Item_id, version-created_at, value
如
- 1,123, 2014-05-01, 754
- 2、456、2014-05-10、333
- 3、123、2014-05-27、709
,我需要找到项目123在日期2014-05-25上的值(即我需要找到记录id=1和value = 754,因为这是在我的目标日期之前创建的项目123的最新版本。
所以我想我需要遍历表查找项目123并比较这些记录的日期。但是我不知道如何处理从一个记录移动到下一个记录并比较它们的迭代。
任务2:遍历一个包含多个产品id和匹配产品价格的字符串文本字段,并查找价格最低的产品id。字符串的形式是一系列价格"p"和id "i"对,按随机顺序排列,如下所示:
"-:p: 99.8我:3-:p: 59.0我:5-:p: 109.8我:18-:p: 82.45我:46"
,在这个例子中,我需要找到"5",作为价格最低的产品的id $59。
所以我想我需要遍历每一个p/I集合,也许通过计算字符数,但我不知道如何遍历和比较以找到最优价格。
一举两得
谢谢。
对于第一个答案,您可以这样做:-
SELECT value FROM history where id = 123 AND version-created_at = '2014-05-01';
对于另一个任务,您必须在前端而不是后端尝试。