我用下面的DB模式MYSQL關係查詢問題
一個客戶問我,讓他們對自己DB一些變化的工作,我還沒有和關係型數據庫在幾打多年來,一般與平面數據庫的工作
有人可以幫助我的方式與給我一個如何下面的查詢將工作的例子。
說,如果我想
選擇所有的電影與LIKE「%矩陣%」標題一定genreID下
任何援助將不勝感激
我用下面的DB模式MYSQL關係查詢問題
一個客戶問我,讓他們對自己DB一些變化的工作,我還沒有和關係型數據庫在幾打多年來,一般與平面數據庫的工作
有人可以幫助我的方式與給我一個如何下面的查詢將工作的例子。
說,如果我想
選擇所有的電影與LIKE「%矩陣%」標題一定genreID下
任何援助將不勝感激
使用的inner join
加盟三表
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"
感謝您的大力支持!我會在哪裏輸入GenreID號碼進行搜索? – user1372212
如果你想指定一個特定的流派ID,你可以將它添加到join子句中 - 這就是你想要的嗎?如果是的話,我會編輯。 –
如果可能的話,我想這樣做。 – user1372212
您需要先加入的表,
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 = ?
我們通常不會在答案中使用舊式聯接。 – Barmar
謝謝,我解決了這個問題,並會進一步考慮它。壞習慣很難消退。 – pilsetnieks
SELECT * FROM Film INNER JOIN FilmGenres ON Film.FilmID = FilmGenres.Film_FilmID
WHERE FilmGenres.Genres_GenreID = 1
AND
Film.Title like '%Matrix%'
如果你想要一個簡單的方法來「refamiliarize」自己如何手工編寫複雜的查詢,有一些優秀的教程網上課程,如[SQL課程(HTTP ://www.sqlcourse.com/index.html)或[SQL Zoo](http://sqlzoo.net/wiki/Main_Page) – mellamokb