0
我想从按特定顺序排序的表中选择值。从表中按特定顺序从另一个表中排序值
我有一个名为test的表,看起来像这样:
| date | code | value |
+----------+-----------+----------+
| 20050104 | 000005.SZ | -6359.19 |
| 20050104 | 600601.SH | -7876.34 |
| 20050104 | 600602.SH | -25693.3 |
| 20050104 | 600651.SH | NULL |
| 20050104 | 600652.SH | -15309.9 |
...
| 20050105 | 000005.SZ | -4276.28 |
| 20050105 | 600601.SH | -3214.56 |
...
| 20170405 | 000005.SZ | 23978.13 |
| 20170405 | 600601.SH | 32212.54 |
现在我只想选择一个日期,说日期= 20050104,然后按一定顺序(顺序的数据进行排序每只股票都在股市上市)。
我有另一个表称为stock_code存储正确的顺序:
+---------+-----------+
| code_id | code |
+---------+-----------+
| 1 | 000002.SZ |
| 2 | 000004.SZ |
| 3 | 600656.SH |
| 4 | 600651.SH |
| 5 | 600652.SH |
| 6 | 600653.SH |
| 7 | 600654.SH |
| 8 | 600602.SH |
| 9 | 600601.SH |
| 10 | 000005.SZ |
...
我想通过分类stock_code(code_id)所选择的数据,但我不希望使用加入,因为它需要太多时间。有什么想法吗?
我试图使用字段,但它给了我一个错误,请告诉我如何纠正它或给我一个更好的主意。
select * from test
where date = 20050104 and code in (select code from stock_code order by code)
order by field(code, (select code from stock_code order by code));
Error Code: 1242. Subquery returns more than 1 row
感谢您的帮助,建立索引会后hepls了很多,但我每次添加索引花费的时间光60秒钟......因为我的表中有大约900万行,我有表十万只像那样......有点难以忍受...... –
@DirkPaul但是你打算更新表格的频率如何? –