Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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_Sql - Fatal编程技术网

如何在一个表中使用其他表中的数据进行计数?mysql

如何在一个表中使用其他表中的数据进行计数?mysql,mysql,sql,Mysql,Sql,我的触发器有问题,我需要让你看看我有什么,然后问题是什么 CREATE TABLE IF NOT EXISTS `book` ( `ISBN` bigint(13) NOT NULL, `Title` varchar(128) NOT NULL, `Version` smallint(6) DEFAULT NULL, `Year` year(4) DEFAULT NULL, `Price` decimal(10,2) DEFAULT NULL, PRIMARY KEY (

我的触发器有问题,我需要让你看看我有什么,然后问题是什么

CREATE TABLE IF NOT EXISTS `book` (
  `ISBN` bigint(13) NOT NULL,
  `Title` varchar(128) NOT NULL,
  `Version` smallint(6) DEFAULT NULL,
  `Year` year(4) DEFAULT NULL,
  `Price` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`ISBN`)
)

CREATE TABLE IF NOT EXISTS `bookauthor` (
  `ISBN` bigint(13) NOT NULL,
  `BSN` int(9) NOT NULL,
  PRIMARY KEY (`ISBN`,`BSN`),
  KEY `bookauthor_ibfk_2` (`BSN`)
)

CREATE TABLE IF NOT EXISTS `publisher` (
  `name` varchar(48) NOT NULL,
  `location` varchar(48) NOT NULL,
  `sales volume` double NOT NULL,
  `logo` longblob NOT NULL
)

CREATE TABLE IF NOT EXISTS `sales` (
  `date` date NOT NULL,
  `publisher` varchar(48) NOT NULL,
  `isbn` int(48) NOT NULL,
  `amount_sold` int(48) NOT NULL
);
我的问题是,,
我想要一个触发器,用更新sales表时生成的sales volume更新publisher表中的sales volume。这需要在某个出版商身上发生,触发器需要类似(销售量*价格)的东西,但我不知道如何做到这一点:(

如果
book
得到更新会发生什么?当book得到更新时,什么都不会发生。thanx要获得帮助:D@user3541687:如果答案对您有帮助,请将其标记为选中(勾选计票下的绿色复选框)@user3541687:检查分隔符。虽然我没有检查语法,但它可能需要一些修饰。使用分隔符需要处理的是什么?因为没有任何东西会产生双重结果。或者我现在没有得到分隔符的功能吗?@user3541687:在
MySQL上使用分号以外的其他东西作为查询分隔符客户
CREATE TRIGGER
        trg_sales_ai
AFTER INSERT
ON      sales
FOR EACH ROW
BEGIN
        UPDATE  publisher p
        CROSS JOIN
                book b
        SET     p.`sales volume` = p.`sales volume` + NEW.amount_sold * b.price
        WHERE   p.name = NEW.publisher
                AND b.ISBN = NEW.isbn
END;