不仅可以为每个单独的行返回满足选择标准的行的列值总和,而且可以为满足相同条件的多个组返回列值的总和吗?
例如,考虑:
id order_id quantity
1 1 1
2 1 3
3 1 5
4 2 2
5 2 4
Run Code Online (Sandbox Code Playgroud)
哪些MySQL SELECT查询可以返回以下结果:
id order_id quantity order_sum
1 1 1 9
2 1 3 9
3 1 5 9
4 2 2 6
5 2 4 6
Run Code Online (Sandbox Code Playgroud)
编辑:后续问题:假设结果是从具有多个条件的查询中产生的,这些条件在最终查询中将如何处理?
尝试通过使用INSERT INTO SELECT并连接两个源表来填充一个空的 MySQL表。想根据定义为UNIQUE KEY 的两个目标表列忽略插入重复行,但由于某种原因,仍然插入基于这两列的重复行。
目标表定义:
CREATE TABLE `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`item_id` int(10) unsigned NOT NULL,
`account_id` int(10) unsigned NOT NULL,
`creation_date` datetime NOT NULL,
`modification_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_item` (`item_id`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Run Code Online (Sandbox Code Playgroud)
插入查询:
INSERT IGNORE INTO item
(id,
item_id,
account_id,
creation_date,
modification_date)
SELECT tblItem.ID,
tblItem.itemID,
tblOrder.accID,
tblItem.itemTime,
'0000-00-00 00:00:00'
FROM tblItem
INNER JOIN tblOrder …Run Code Online (Sandbox Code Playgroud)