0

「タイプ」という名前の列があるテーブルがあります。その列にテーブル名を(型名として)保持しています。行のタイプ(テーブル名)を確認し、IDを使用してそのテーブルからデータを取得したい。単一のクエリで行うことは可能ですか?

メインテーブルの構造は次のとおりです-

    CREATE TABLE `post` (
  `post_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `column` enum('1','2','3') NOT NULL,
  `type` enum('post_image','post_video') NOT NULL,
  `title` varchar(255) CHARACTER SET utf8 NOT NULL,
  `description` text CHARACTER SET utf8 NOT NULL,
  `thumb` varchar(255) NOT NULL,
  `post_date` datetime NOT NULL,
  `views` int(11) NOT NULL,
  `status` int(11) NOT NULL,
  PRIMARY KEY (`post_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

上記の列の 2 つの異なるタイプの 2 つの表を次に示します。

    CREATE TABLE `post_image` (
  `post_image_id` int(11) NOT NULL AUTO_INCREMENT,
  `post_id` int(11) NOT NULL,
  `image` varchar(255) NOT NULL,
  PRIMARY KEY (`post_image_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;


    CREATE TABLE `post_video` (
  `video_remote_id` int(11) NOT NULL AUTO_INCREMENT,
  `post_id` int(11) NOT NULL,
  `video_type` enum('vimeo','youtube') NOT NULL,
  `video_id` int(11) NOT NULL,
  `video_url` varchar(255) NOT NULL,
  `video_title` int(11) NOT NULL,
  `video_duration` int(11) NOT NULL,
  PRIMARY KEY (`video_remote_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4

1 に答える 1

1

単一のクエリで - いいえ。

prepares ステートメントを使用してみてください。テーブルの名前を変数に読み込み、SELECT クエリ文字列を作成し、EXECUTE コマンドを使用して実行します。

于 2013-03-14T08:51:40.963 に答える