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