Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在触发器中使用连接,MySQL_Mysql - Fatal编程技术网

在触发器中使用连接,MySQL

在触发器中使用连接,MySQL,mysql,Mysql,我正在开发一个数据库,当另一个表被更新时,它需要更新一个表中的字段。但是,正在更新的表不包含我需要的值。。。它只包含具有该值的第三个表的ID。基本上,我正在寻找能做到这一点的东西: CREATE TRIGGER au_TableA AFTER UPDATE TableA FOR EACH ROW BEGIN UPDATE TableB SET points=TableC.points WHERE TableC.cID=NEW.cID; END 当然,cID同时存在于TableA和TableC

我正在开发一个数据库,当另一个表被更新时,它需要更新一个表中的字段。但是,正在更新的表不包含我需要的值。。。它只包含具有该值的第三个表的ID。基本上,我正在寻找能做到这一点的东西:

CREATE TRIGGER au_TableA AFTER UPDATE TableA
FOR EACH ROW BEGIN
UPDATE TableB SET points=TableC.points 
WHERE TableC.cID=NEW.cID;
END
当然,cID同时存在于TableA和TableC中。

请尝试此查询-

UPDATE
  TableB b
  JOIN TableC с
    ON c.cID = b.cID
SET
  b.points = c.points
WHERE c.cID=NEW.cID;

谢谢我想我低估了问题的复杂性,并使用if语句、变量和其他东西找到了另一个解决方案。我想回来告诉你它是否有效,但我决定走另一条路。无论如何,谢谢你。