Mysql 插入触发器后在内部选择count()不正确

Mysql 插入触发器后在内部选择count()不正确,mysql,sql,triggers,Mysql,Sql,Triggers,我有一个后插入触发器,看起来像这样 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 JOI

我有一个后插入触发器,看起来像这样

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_结果总是0。如果我在触发器之外运行查询,我会得到正确的计数。起初我认为变量@newcompany没有得到值。但我已经检查过了


我需要帮助

不明白为什么要使用左连接

    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

您确定触发器已执行吗?此处使用的左联接与内部联接相同。是的,触发器执行是因为执行了第一次插入。我想您认为我应该执行内部联接吗?我修改了上面粘贴的查询。试试看是否有效。您的左连接在代码中被视为与内部连接相同。您好,请返回工作并运行修改后的查询,它就工作了。非常感谢你。我以前从未在连接处使用和调节。伟大的