0
我有一個表,其中有一個名爲'type'的列。我在該列保留表名(作爲類型名稱)。我想檢查一行的類型(表名),並使用一個id從該表中獲取數據。是否可以在單個查詢中執行?使用動態SQL查詢選擇數據
這裏是主表的結構 -
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;
你可以請給表結構,這將是有益的。謝謝。 – 2013-03-14 08:45:46
@AlexZ - 我給出了問題描述中的結構... – rafi 2013-03-14 08:50:55
@DevangRathod - 我已經嘗試過這樣 select'select * from post p left join ['+ p.type +'] d on p.id = d.post_id' – rafi 2013-03-14 08:51:57