2016-11-16 47 views
0

我有兩個表video_details和video_tag。 我試圖獲得屬於particualr標籤ID如何使用In Operator獲取詳細信息

這是我的表結構

CREATE TABLE IF NOT EXISTS `video_details` (
    `video_id` int(6) NOT NULL auto_increment COMMENT 'Auto Generated key', 
    `video_name` varchar(50) default NULL, 
    `video_file` varchar(100) default NULL, 
    `how_to_video` varchar(100) default NULL COMMENT 'information video', 
    `video_desc` varchar(50) default NULL, 
    `video_created_date` timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, 
    `video_status` tinyint(1) default NULL COMMENT '0-->video will not be displayed.,1-->video will be displayed ', 
    PRIMARY KEY (`video_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=382 DEFAULT CHARSET=utf8; 

CREATE TABLE IF NOT EXISTS `video_tag` (
    `video_id` int(6) default NULL, 
    `tag_id` int(11) default NULL, 
    KEY `FK__tag_details` (`tag_id`), 
    KEY `FK__video_details` (`video_id`), 
    CONSTRAINT `FK__video_details` FOREIGN KEY (`video_id`) REFERENCES `video_details` (`video_id`) ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; 

相應的SQL小提琴

http://sqlfiddle.com/#!9/74b210

我也這樣嘗試過的video_details數據

select vt.video_id , vd.video_name from video_tag vt , video_details vd 
where vt.tag_id in (1,2) 

回答

2

簡單地使用加入

SELECT vt.video_id , vd.video_name 
FROM video_tag vt 
LEFT JOIN video_details vd on vd.video_id = vt.video_id 
WHERE vt.tag_id in (1,2) 
+0

非常感謝,這完美地回答了我的問題,是否也可以在tag_id = 1或2的情況下編寫查詢?同樣 – Pawan

+0

不知道你是什麼意思,IN的作用與OR相同, (1,2)中的tag_id與(tag_id = 1或tag_id = 2)相同, – 2oppin

相關問題