INSERT INTO SELECT mysql 正在尝试插入与所选数据不同的数据

INSERT INTO SELECT mysql is trying to insert different data from the selected ones

最近一直在折腾MySQL,有一个问题解决不了

有 2 个 table。

第一个是每5分钟存储一次在线玩家数据,第二个是每天统计一次。它是分开的,所以我不必 运行 每当有人想查看上个月的最小、平均、最大在线玩家时疯狂选择。

此查询有效,结果是一个 table,其中的日期尚未在 status_statistika 中。

SELECT date,MIN(playersonline),AVG(playersonline),MAX(playersonline)
    来自 status_graf
    按日期分组
    日期不在(
        SELECT 日期
        来自 status_statistika
        按日期分组
    )

但是当我尝试这个时

插入 status_statistika (
    SELECT 日期,MIN(球员线),AVG(球员线),MAX(球员线)
    来自 status_graf
    按日期分组
    日期不在(
        SELECT 日期
        来自 status_statistika
        按日期分组
    )
    );

没有。

使用 phpMyAdmin 4.3.8、MySQL 5.5.41 并抛出错误 #1062 - 密钥 'date'.

的重复条目“2015-01-29”

想法?

解决方案: 由于点约定以某种方式不接受它,我不得不将一个 table 中的列 'date' 重命名为 'day' 然后它起作用了

INSERT INTO status_statistika (
    SELECT DISTINCT date,MIN(playersonline),AVG(playersonline),MAX(playersonline) 
    FROM status_graf 
    GROUP BY date 
    HAVING date NOT IN (
        SELECT date 
        FROM status_statistika 
        GROUP BY date
    )
    );

注意 'DISTINCT'

看起来您在 status_statistika table 中的日期列上有唯一索引。