简体   繁体   English

AFTER INSERT内的SELECT count()触发不正确

[英]SELECT count() inside AFTER INSERT trigger incorrect

I have an AFTER INSERT-trigger that looks like this. 我有一个看起来像这样的AFTER INSERT触发器。

BEGIN
    SET @newcompany = NEW.company_id; 
    IF NEW.company_id is not null THEN

        SET @my_result = (SELECT count(*) FROM wp_wysija_user u
            LEFT JOIN wp_pods_company c ON c.id = u.company_id
            LEFT JOIN wp_podsrel rel ON c.id = rel.item_id
            WHERE rel.field_id=3384 AND rel.related_item_id=5 AND u.company_id = @newcompany);

        INSERT INTO wp_wysija_user_list(list_id, user_id, sub_date)
        VALUES (5, NEW.user_id, UNIX_TIMESTAMP());

        IF @my_result > 0 THEN
            INSERT INTO wp_wysija_user_list(list_id, user_id, sub_date)
            VALUES (7, NEW.user_id, UNIX_TIMESTAMP());
        END IF;     
    END IF;
END

My problem is that @my_result is always 0. If I run the query outside the trigger I get the right count. 我的问题是@my_result始终为0。如果我在触发器之外运行查询,我将获得正确的计数。 At first I thought that the variable @newcompany didn´t get a value. 起初,我认为变量@newcompany没有值。 But I have checked that. 但是我已经检查过了。

I need help here! 我在这里需要帮助!

Don't understand why you use LEFT joins???? 不明白为什么要使用LEFT联接????

    BEGIN
SET @newcompany = NEW.company_id; 
IF NEW.company_id is not null THEN

    SET @my_result = (SELECT count(*) FROM wp_wysija_user u
        LEFT JOIN wp_pods_company c ON c.id = u.company_id
        LEFT JOIN wp_podsrel rel ON c.id = rel.item_id and rel.field_id=3384 AND        
                                                           rel.related_item_id=5
        WHERE  u.company_id = @newcompany);

    INSERT INTO wp_wysija_user_list(list_id, user_id, sub_date)
    VALUES (5, NEW.user_id, UNIX_TIMESTAMP());

    IF @my_result > 0 THEN
        INSERT INTO wp_wysija_user_list(list_id, user_id, sub_date)
        VALUES (7, NEW.user_id, UNIX_TIMESTAMP());
    END IF;     
END IF;

END 结束

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM