2016-11-16 8 views
0

私は2つのテーブルvideo_detailsとvideo_tagを持っています。 私はこれは私がこのようにそれを試してみましたIn演算子を使用して詳細を取得する方法

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

私のテーブル構造

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フィドルあるタグID

をparticualrに属しているためvideo_detailsデータを取得しようとしています

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

答えて

2

は単純にjoinを使用します。

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

関連する問題