タイトルはあまり有用ではないことを知っている。私自身がこれを理解することが難しい理由の一部だ。それを言葉にするために、私はそれをGoogleにすることはできません。MySQL - IDは同じだが別の列にある特定の値を持つ行を取得する
とにかく、映画とテレビ番組が私のDVDコレクションからリッピングされたNetflixスタイルのウェブサイトを作っています。私のラズベリーパイを走っているLAMPスタックです。たくさんのチェックボックスからジャンルを選択してジャンル別に検索するオプションがあります。私はそれが "ホラー"と "コメディ"をチェックすると、検索結果は/またはどちらのジャンルでもなく、それらのジャンルの両方を持っている映画/テレビ番組のみを返すように機能したいと思います。
私はいくつかのMySQLテーブル、THR_MOVIE、THR_SHOW、THR_GENREを持っています。 THR_MOVIEとTHR_SHOWの構造は、この質問ではあまり重要ではありません。それぞれのムービー/テレビ番組がただ1つの行を持ち、一意のIDを持つことを知っているだけです。ここTHR_GENREの構造があります:
CREATE TABLE `THR_GENRE` (
`media_id` INT(7) UNSIGNED NOT NULL,
`genre` VARCHAR(255) NOT NULL,
`media_type` ENUM('movie','show') NOT NULL,
`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`media_id`, `genre`, `media_type`))
を明らかにmedia_typeこのは '映画' である場合、media_idこのオプションでは、THR_MOVIEのIDとないTHR_SHOW IDです。ジャンルテーブルのデータの例を次に示します。
row 1: media_id=12, genre='horror', media_type='movie'
row 2: media_id=12, genre='comedy', media_type='movie'
このクエリはどのように機能しますか?ムービーのデータを取得する必要があるので、THR_GENREとTHR_GENREを組み合わせて映画を入手し、THR_SHOWとTHR_GENREを使ってテレビ番組を取得する必要があります。
あなたの質問を更新すると、実際に使用しているクエリと予想される結果が追加されます。 – scaisEdge