0

長い投稿で申し訳ありません: MySQL の別のストアド プロシージャからストアド プロシージャを呼び出すことは可能ですか? 例: 2 つのテーブル (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 ;

-- テーブルのテーブル構造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 ;

ここで、テストテーブルに次のものを入力しました。

INSERT INTO `test` (`t_id`, `name`) VALUES
    (1, 'foo'),
    (2, 'bar'),
    (3, 'ma');

およびテーブル testcomp は次のとおりです。

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

2つの手順がある場合:

最初の QryTestComp:

SELECT t_id, place FROM TestComp

上記のものは、通常のテーブルを照会するだけで機能します: しかし、上記の手順を呼び出す 2 つ目の QryTestPlac:

SELECT * FROM Test INNER JOIN QryTestComp ON Test.t_id = QryTestComp.t_id

エラーが発生します:

エラー: 1146 (42S01): テーブル 'mydb.qrytestcomp' が存在しません。それはテーブルではなく手順です。

ポインタをください。

よろしく、

――ジョンギ

4

1 に答える 1

5

ストアドプロシージャに参加することはできません。おそらくビューを使用する方が適切かもしれません。

于 2010-11-05T09:18:21.600 に答える