我有一个表,其中有一个名为“类型”的列。我在该列中保留表名(作为类型名称)。我想检查一行的类型(表名)并使用 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;
这是上列中两种不同类型的两个表-
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;