从表中选择数据,条件是来自另一个表的2个唯一值

时间:2012-08-07 15:27:13

标签: mysql sql

我刚刚开始使用SQL,直到现在才开始搜索谷歌快速提示,但是我已经暂时停留在这个问题上了。

我有两个表,Stock_Data有2列,Id和Date。第二个表非常大,包含几百万行数据,称为Options_Data。第二个表还有一个Id列和一个Date列以及我想要下载的大约12个额外数据列。

我想做的是

for each row i in Stock_Data

SELECT * FROM Option_Data where Option_Data.Id = Stock_Data.Id(i)

AND WHERE Option_Data.Date BETWEEN Stock_Data.Date-60 days and Stock_data.Date+60 days

end

本质;从Stock_Data获取股票ID及其唯一的事件日期,转到Option_Data并在事件日期之前和之后60天取出该股票ID的数据。

我只是在matlab中真正编码,因此循环类比和伪代码。 我只能使用Id来解决问题,但它涉及下载的数据远远超过必要的数据,它是我遇到麻烦的每个ID的唯一数据范围。

1 个答案:

答案 0 :(得分:0)

SELECT
  Option_Data.*
FROM
  Stock_Data
INNER JOIN
  Option_Data
    ON  Option_Data.ID = Stock_Data.ID
    AND Option_Data.Date BETWEEN Stock_Data.Date-60 and Stock_data.Date+60