Возможно, можно помочь мне. Я должен запросить 3 таблицы для получения данных для финансового запаса.
Идея состоит в том, чтобы перейти к инструментальной таблице, найти индекс для каждого инструмента и затем принести все цены на тот конкретный инструмент вместе с индикаторами, которые находятся на отдельной таблице.
Таблицы stockdata
и indicators
оба почти 50 000 записей. instruments
всего 30.
Это - запрос, который не работает:
SELECT
indicators.ddate,
instruments.name,
indicators.sma_14,
indicators.sma_5,
stockdata.close
FROM
indicators
INNER JOIN instruments ON (indicators.instrument_id=instruments.id)
INNER JOIN stockdata ON (instruments.name=stockdata.name)
Вот ОБЪЯСНИТЬ результат
+----+-------------+-------------+-------+-----------------------------+---------------------+---------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | rows | Extra |
+----+-------------+-------------+-------+-----------------------------+---------------------+---------+------+-------------+
| 1 | SIMPLE | instruments | index | PRIMARY,instruments_index01 | instruments_index01 | 61 | 25 | Using index |
| 1 | SIMPLE | indicators | ref | indicators_index01 | indicators_index01 | 5 | 973 | Using where |
| 1 | SIMPLE | stockdata | ref | stockdata_index01 | stockdata_index01 | 31 | 1499 | Using where |
+----+-------------+-------------+-------+-----------------------------+---------------------+---------+------+-------------+
Я действительно ценю любую справку, которую можно обеспечить!
Это - схема для частей таблиц, которые вовлечены в мой вопрос:
TABLE `indicators` (
`id` int AUTO_INCREMENT NOT NULL,<br>
`instrument_id` int,
`date` date,
`sma_5` float(10,3),
`sma_14` float(10,3),
`ema_14` float(10,3),
/* Keys */
PRIMARY KEY (`id`)
)
TABLE `instruments` (
`id` int AUTO_INCREMENT NOT NULL,
`name` char(20),
`country` char(50),
`newsquery` char(100),
/* Keys */
PRIMARY KEY (`id`)
)
TABLE `stockdata` (
`id` int AUTO_INCREMENT NOT NULL,
`name` char(10),
`date` date,
`open` float,
`high` float,
`low` float,
`close` float,
`volume` int,
`adjclose` float,
/* Keys */
PRIMARY KEY (`id`)
)