在mysql if语句中使用另一个表中的列

Posted

技术标签:

【中文标题】在mysql if语句中使用另一个表中的列【英文标题】:Using columns from another table in mysql if statement 【发布时间】:2012-09-08 06:48:08 【问题描述】:

我写了一个类似这样的触发器:

CREATE TRIGGER `update_after_itemPresent` AFTER INSERT ON `bus_repair`
FOR EACH ROW begin
    IF NEW.unit <> `item_present`.`unit` THEN
        update item_present 
        set unit = unit-new.unit 
        where item_present.item_group_id = new.item_group_id;
    END IF;
end

但是当我在bus_repair 表中插入新行时,会出现以下错误:

字段列表中存在未知表项

知道如何解决这个问题吗?

【问题讨论】:

你确定unit-new 不应该是unit_new 吗?你能展示item_present表的结构吗? 兄弟,unit(minus)new.unit.....unit 来自 item_present 表,new.unit 来自 bus_repair 表....现在我已经检查了没有任何 if 语句的触发器,它工作正常。但是当我包含 if 语句时,它会显示错误。我确定问题出在 if 部分。 【参考方案1】:

将您的 UPDATE item_preset 语句移到 IF 上方和 UPDATE 内的 IF 或改写为条件。您需要先更新或选择表 item_present。

【讨论】:

以上是关于在mysql if语句中使用另一个表中的列的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的if语句和while语句

如何在 mySQL 的 SELECT 语句中使用 If 语句和关系运算符? [复制]

Google表格中的QUERY内的IF语句

IF 语句中的 MySQL SELECT WHERE

使用 if 语句显示表中的记录

在 mySQL SELECT 语句中使用嵌套的 IF