Sql 在重复键上插入..选择..不明确ID

Sql 在重复键上插入..选择..不明确ID,sql,mysql,insert-update,mysql-error-1052,Sql,Mysql,Insert Update,Mysql Error 1052,我有下表: mysql> SELECT * FROM `bright_promotion_earnings`; +----+----------+------------+----------+-------+ | id | promoter | generation | turnover | payed | +----+----------+------------+----------+-------+ | 1 | 4 | 1 | 10

我有下表:

mysql> SELECT *  FROM  `bright_promotion_earnings`;
+----+----------+------------+----------+-------+
| id | promoter | generation | turnover | payed |
+----+----------+------------+----------+-------+
|  1 |        4 |          1 |       10 |     0 | 
|  3 |        4 |          5 |      100 |     0 | 
|  4 |        4 |          3 |    10000 |     1 | 
|  5 |        4 |          3 |      200 |     0 | 
+----+----------+------------+----------+-------+
4 rows in set (0.00 sec)
有一个唯一密钥(发起人、生成、付费):

现在,我想通过更新paid=1(如果存在)的相同条目,将推广人的每个收入标记为paid

因此,如果我想将发起人4的收入标记为已支付,则该表应如下所示:

+----+----------+------------+----------+-------+
| id | promoter | generation | turnover | payed |
+----+----------+------------+----------+-------+
|  4 |        4 |          3 |    10200 |     1 | 
|  6 |        4 |          5 |      100 |     1 | 
|  7 |        4 |          1 |       10 |     1 | 
+----+----------+------------+----------+-------+
3 rows in set (0.00 sec)
这是我目前的方法(没有删除,这是微不足道的):

但mysql一直告诉我营业额是不明确的:

#1052 - Column 'turnover' in field list is ambiguous
有人提示我不能为插入到的表别名吗

如何为插入的表命名,以便mysql能够识别该列


提前谢谢。

两个表中都有一个营业额字段,因此mysql无法确定您在最后一行中指的是哪一个。

是的,我知道..这正是我的问题。问题是:如何给我插入的表命名,以便mysql能够识别列?这不管用吗?在重复键上更新bright_promotion_earnings.Convertup=bright_promotion_earnings.Convertup+commission.turnover2@这为我解决了这个问题。你为什么不把它贴出来作为答案呢?此外,是否可以将别名应用到表中,以便您可以说
t.overship
INSERT INTO 
    bright_promotion_earnings
    (
        promoter,
        generation,
        turnover,
        payed
    )
SELECT 
    commission.promoter,
    commission.generation,
    commission.turnover as turnover2,
    '1' as payed
FROM  
    bright_promotion_earnings as commission
WHERE  
    promoter=4
    AND payed=0
ON DUPLICATE KEY UPDATE turnover=turnover+turnover2;
#1052 - Column 'turnover' in field list is ambiguous