在MySQL中的SELECT查询中加入3个表

时间:2016-04-18 22:51:23

标签: mysql sql

我已经对SQL表进行了一些插入,请参阅代码。

基于该代码,我希望表''video'中列'tittel'的值,但'video'元素需要从表'etikett'中获得给定值(我需要搜索匹配的元素)所有栏目)。正如你所看到的,我需要通过表'videoetikett'使用'videoid'列,这是常用列,我不知道如何为此编写SELECT。

示例:我想在'etikett'中搜索'spania'值的所有列。当它找到它时,我需要在该行上使用'etikettid',即1,在'videoetikett'中获得'videoid',即1,最终输出'video'的'tittel',' Ferie 2016'。

我希望我能够以一种好的方式解释这一点。

任何帮助都将受到高度赞赏!

insert into video (videoid, starttid, sluttid, tittel, filplassering, navn) 
values (1, '2016-01-11 16:00:00', '2016-01-11 17:00:00', 'Ferie 2016', '/bilder', 'Roy Jakobsen');

insert into etikett (etikettid, beskrivelse, posisjon)
values (1, 'ferie', 'spania');

insert into videoetikett (etikettid, videoid)
values (1, 1);

1 个答案:

答案 0 :(得分:3)

分步进行,

一:

select e.etikettid from etikett as e where posisjon = 'spania';

二:

select e.etikettid 
  from etikett as e, videoetikett as ve 
 where posisjon = 'spania' 
   and e.etikettid = ve.etikettid;

三:

select v.tittel, e.etikettid 
  from etikett as e, videoetikett as ve, video as v
 where posisjon = 'spania' 
   and e.etikettid = ve.etikettid
   and v.videoid = ve.videoid;

select v.tittel, e.etikettid 
  from etikett as e, videoetikett as ve, video as v
 where e.etikettid = ve.etikettid
   and v.videoid = ve.videoid
   and (posisjon = 'spania' OR beskrivelse = 'spania');