2016-04-18 20 views
2

SQLテーブルにいくつかの挿入を行いました。コードを参照してください。MySQLのSELECTクエリで3つのテーブルを結合します。

テーブル 'ビデオ'の列 'tittel'の値が必要ですが、 'ビデオ'要素にはテーブル 'etikett'の値が必要です(一致する要素を検索する必要がありますALL列)。ご覧のとおり、共通の列である 'videoid'という列を使用して 'videoetikett'テーブルを経由する必要があります。このためにSELECTを書く方法がわかりません。

例: 'etikett'のすべての列を 'spania'値として検索したいとします。それが見つかると、その行の 'etikettid'(1)を使用して 'videoid'(1)を取得し、 'videoetikett'で最終的に '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); 
+0

https://www3.ntu.edu.sg/home/ehchua/programming/sql/MySQL_Beginner.html –

+0

シンプル[INNER JOINを]のように見えます(http://dev.mysql.com /doc/refman/5.7/ja/join.html)を私に教えてください。 – Uueerdo

答えて

3

、段階的に

一つを、それを実行します。

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

2:

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

3:

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'); 
+0

優秀、それは働いた!すべての手順を含めてくれてありがとう、将来私はそれらを使うことができます。どうもありがとう! – MariusJ

+0

'beskrivelse'もチェックするには、 'where'ステートメントを書き直しました。 beskrivelse = 'spania' or posisjon = 'spania' – MariusJ

+0

追加したばかりの方に追加しました。 – Harry

関連する問題