我想与一个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