MySQL データベースに次のテーブルがあります。
CREATE TABLES Films (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
Title VARCHAR(255)),
CREATE TABLE Genres (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
Name VARCHAR(255))
CREATE TABLE Films_Genres (
film_id INT NOT NULL,
genre_id INT NOT NULL,
PRIMARY KEY (film_id,genre_id),
FOREIGN KEY (film_id) REFERENCES Films(id) ON UPDATE CASCADE,
FOREIGN KEY (genre_id) REFERENCES Genres(id) ON UPDATE CASCADE)";
に保存されている特定のジャンルの映画を検索したい$genre
。また、このジャンルの名前を選択したいと思います (理由は聞かないでください ;) )。私は最初の部分を行う方法を知っています。2番目の部分を達成しようとしJOIN
ていますが、構文に問題があります:
SELECT * FROM Films WHERE id IN (
SELECT film_id FROM Films_Genres
WHERE genre_id IN SELECT id FROM Genres WHERE Name = '$genre'))
JOIN Genres ON Name = '$genre'
エラーメッセージ:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN Genres ON Name = 'Action'' at line 1