3

次のDBモデルを使用しています

ここに画像の説明を入力

クライアントから、DB にいくつかの変更を加えるように依頼されました。ここ数年、リレーショナル データベースを扱っていません。通常はフラット DB で作業しています。

次のクエリがどのように機能するかの例を教えてください。

言いたいなら言って

特定のジャンル ID の下にある「%Matrix%」のようなタイトルのすべての映画を選択する

どんな援助でも大歓迎です

4

5 に答える 5

8

を使用し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"
于 2013-04-16T14:40:24.437 に答える
3

最初にテーブルを結合する必要があります。

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
于 2013-04-16T14:40:52.207 に答える
3
SELECT Film.*
FROM Film f
JOIN FilmGenres fg ON g.Film_FilmID = f.FilmID
WHERE fg.Genres_GenreID = 3
AND Title LIKE '%Matrix%'
于 2013-04-16T14:41:22.113 に答える
1

これは非常に単純な結合です。

select
    Film.*
from
    Film
inner join FilmGenres on
    Film.FilmID = FilmGenres.Film_FilmID
where
    Film.Title like "%Matrix%" and
    FilmGenres.Genres_GenreID = ?
于 2013-04-16T14:42:13.410 に答える