我正在使用sequel pro从多个表中选择数据。我需要做的两件事似乎需要某种形式的循环。我从未在sql中使用过任何形式的迭代,也找不到可以学习的初学者级资源。
任何人都可以建议如何执行以下两个任务,或者建议一个可以在其中学习基础知识并从中弄清楚基础的教程:
任务1:浏览版本历史记录表,找到在给定日期应用的给定ID的相关历史记录,然后从该记录中选择值。历史记录表的形式为:
id,Item_id,version-created_at,值
例如
1,123,2014-05-01,754
2,456,2014-05-10,333
3,123,2014-05-27,709
并且我需要找到项目123的值在2014年5月25日的日期(即,我需要找到记录id = 1和值= 754,因为那是我在目标日期之前创建的项目123的最新版本。
因此,我认为我需要遍历表以查找项目123并比较这些记录的日期。但是我不知道如何处理从一个记录移到下一个记录并进行比较的迭代过程。
任务2:浏览单个文本字段,该文本字段包含多个产品ID和字符串中匹配的产品价格,然后查找价格最低的产品ID。字符串的形式是一系列价格对“ p”和id对“ i”,以随机顺序排列,如下所示:
”
-:p:99.8
:i:3
-:p:59.0
:i:5
-:p:109.8
:i:18
-:p:82.45
:i:46
”
在此示例中,我需要找到“ 5”,即最低价格为$ 59的产品的ID。
因此,我认为我需要逐步遍历每个p / i集,也许是通过计算字符数来进行,但是我不知道如何遍历和比较以找到最佳价格。
一点帮助将大有帮助。
谢谢。
最佳答案
对于第一个答案,您可以执行以下操作:
SELECT value FROM history where id = 123 AND version-created_at = '2014-05-01';
对于另一项任务,您必须在前端而不是后端进行尝试。