{MySQL} 错误 #1054 SQL 看起来不错(触发器)

{MySQL} Error #1054 SQL seems fine(Trigger)

我收到错误消息:

#1054 - Unknown column 'kaseamgc_store.plans.plan_id' in 'where clause'

此消息来自我的触发器,它是插入前触发器。它运行以下 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 中的样子:

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

中有 1-4 行

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

您正在更新 table kaseamgc_store.store_players 并期望 table kaseamgc_store.plans (plan_id) 的列。

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

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