我想與一個MySQL查詢的幫助:比較兩個表中的值,並更新表1表2是否具有較高的價值
- 對於
max(id)
每個transaction.position行,其中t_type = 'buy'
- 獲取從表
quotes2010
(基於所述transactions.symbol
) - 最近(按日期)價格IF價格爲符號比在
transactions.high
列中的價格 - 減去0.01從第更高Ë更高
quotes2010.price
- 更新更高的價格在
transactions.high
列
。 。 。 。在一個查詢中。
我想要做的最基本的事情就是更新表格,如果第二個表格中符號的價格更高。這裏是數據庫結構的基本版本:
CREATE TABLE IF NOT EXISTS `transactions` (
`id` int(10) unsigned NOT NULL auto_increment,
`symbol` char(8) NOT NULL,
`high` double(8,2) NOT NULL,
`t_type` enum('buy','sell') NOT NULL,
`t_date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `position` (`position`,`id`),
KEY `t_date` (`t_date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `transactions` VALUES(1, 'AO1', 1.35, '2010-12-12 00:08:57');
CREATE TABLE IF NOT EXISTS `quotes2010` (
`symbol` char(8) NOT NULL,
`price` double(8,2) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`symbol`,`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `quotes2010` VALUES('A01', 1.40, '2010-12-19 10:03:05');
從表和插入語句中缺少列「位置」。 – Ronnis 2010-12-19 18:49:26
您的CREATE TABLE轉儲正確 - 事務處理中沒有位置字段。另外,請提供更具代表性的測試數據以測試所需的限制條件。 – Riedsio 2010-12-19 18:50:29
你們都是對的。我在這裏是新的,我只是試圖剝離桌子結構(試圖更清楚)。將來,我會做得更好。 – Drewneedshelp 2010-12-20 04:53:33