次のDBモデルを使用しています
クライアントから、DB にいくつかの変更を加えるように依頼されました。ここ数年、リレーショナル データベースを扱っていません。通常はフラット DB で作業しています。
次のクエリがどのように機能するかの例を教えてください。
言いたいなら言って
特定のジャンル ID の下にある「%Matrix%」のようなタイトルのすべての映画を選択する
どんな援助でも大歓迎です
を使用しinner join
て 3 つのテーブルを結合します
SELECT F.title
FROM film F
INNER JOIN filmgenres FG
ON F.filmid = FG.film_filmid
INNER JOIN genres G
ON FG.genres_genreid = G.genreid
WHERE F.title LIKE '%Matrix%' AND G.genre = "Some Genre"
最初にテーブルを結合する必要があります。
SELECT a.*, c.Genre
FROM Film a
INNER JOIN FilmGenres b
ON a.FilmID = b.Film_FilmID
INNER JOIN Genres c
ON b.Genre_GenreID
WHERE a.Title LIKE '%matrix%'
結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。
特定のジャンルを検索したい場合は、条件を追加することもできます。
SELECT a.*, c.Genre
FROM Film a
INNER JOIN FilmGenres b
ON a.FilmID = b.Film_FilmID
INNER JOIN Genres c
ON b.Genre_GenreID
WHERE a.Title LIKE '%matrix%' AND c.GenreID = 10
SELECT Film.*
FROM Film f
JOIN FilmGenres fg ON g.Film_FilmID = f.FilmID
WHERE fg.Genres_GenreID = 3
AND Title LIKE '%Matrix%'
これは非常に単純な結合です。
select
Film.*
from
Film
inner join FilmGenres on
Film.FilmID = FilmGenres.Film_FilmID
where
Film.Title like "%Matrix%" and
FilmGenres.Genres_GenreID = ?