{MySQL}错误#1054 SQL似乎很好(触发器)

时间:2015-04-16 15:53:46

标签: mysql mysql-error-1054

我收到错误消息:

  

#1054 - 'where子句'中的未知列'kaseamgc_store.plans.plan_id'

此消息来自我的触发器,这是一个插入触发器之前。它运行以下SQL:

UPDATE kaseamgc_store.store_players
   SET credits = credits + kaseamgc_store.plans.creditvalue 
 WHERE kaseamgc_store.plans.plan_id = kaseamgc_store.orders.plan_id
   AND kaseamgc_store.store_players.authid LIKE '%kaseamgc_store.orders.steam_id'

现在,当我收到消息时,我运行了以下SQL(可能不相关):

INSERT INTO finish_order (txn_id, payer_email, mc_gross, steam_id, username,
                           password, date, provider, plan_id, forum_userid)
     VALUES ('info', 'email-adress', '1.00', 'STEAM_ID', 'TheUsername',
             'no-pass', 20150416, 'paypal', 1, 0)

我删除了一些信息,但这无关紧要。无论如何,这里有一些关于plans.plan_id列在phpmyadmin中的样子的截图:

enter image description here

我有4行,所以我应该在plans.plan_id

中有1-4行

编辑:所以我似乎全身都遇到了这个问题。我知道它与线条有关,但不知道它为什么会发生。这是我想要比较两个*变量的地方。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在更新表格kaseamgc_store.store_players,并期待一列表格kaseamgc_store.plansplan_id)。

UPDATE kaseamgc_store.store_players -- table store_players
   SET ...
 WHERE kaseamgc_store.plans.plan_id .... -- table plans

那不行。正确的解决方案取决于您的确切需求。先前对局部变量的赋值可能是一种解决方案。