MySQL调用另一个存储过程的存储过程

0 mysql sql procedures mysql-error-1146

抱歉长POST:我是否有可能从MySQL中的另一个存储过程调用存储过程.例如:我有两个表(test和testcomp):具有以下结构:

- 表的表结构 test

CREATE TABLE IF NOT EXISTS `test` (
    `t_id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    PRIMARY KEY (`t_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
Run Code Online (Sandbox Code Playgroud)

- 表的表结构 testcomp

CREATE TABLE IF NOT EXISTS `testcomp` (
    `c_id` int(11) NOT NULL AUTO_INCREMENT,
    `t_id` int(4) NOT NULL,
    `place` varchar(255) NOT NULL,
    PRIMARY KEY (`c_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
Run Code Online (Sandbox Code Playgroud)

现在我填充测试表:

INSERT INTO `test` (`t_id`, `name`) VALUES
    (1, 'foo'),
    (2, 'bar'),
    (3, 'ma');
Run Code Online (Sandbox Code Playgroud)

和table testcomp:

INSERT INTO `testcomp` (`c_id`, `t_id`, `place`) VALUES
    (1, 1, 'gugs'),
    (2, 2, 'nyanga'),
    (3, 1, 'gugs'),
    (4, 3, 'skom');
Run Code Online (Sandbox Code Playgroud)

现在,如果我有2个程序:

第一个QryTestComp:

SELECT t_id, place FROM TestComp
Run Code Online (Sandbox Code Playgroud)

上面的一个作为正常查询正常表:但是第二个QryTestPlac,它调用上述过程:

SELECT * FROM Test INNER JOIN QryTestComp ON Test.t_id = QryTestComp.t_id
Run Code Online (Sandbox Code Playgroud)

出现错误:

它说错误:1146(42S01):表'mydb.qrytestcomp'不存在.它不是一张桌子而是一个程序.

指针,请.

问候,

--Jongi

Jon*_*ack 5

你不能加入一个存储过程,也许使用视图可能更合适?