2017-03-18 14 views
0

同じカテゴリの2つのテーブルに参加しようとしていますが、結果が返ってこないのはそれほど効果的ではありません。同じカテゴリのテーブルを結合する

私は2つのテーブルのtvshowsとムービーを持っていますが、両方とも列のカテゴリを持っています。今ではそれらをすべて調べて、カテゴリが一致しているかどうかを確認したいのですが、何が間違っているのか分かりません。ありがとう、ありがとう!

$query = $connection->prepare(" 
    SELECT 
      a.id, 
      a.hash, 
      a.categories, 
      a.thumb_location, 
      a.name, 
      a.year, 
      b.id, 
      b.hash, 
      b.categories, 
      b.thumb_location, 
      b.name, 
      b.year 
      FROM movies AS a 
      LEFT JOIN series AS b 
      ON a.categories = b.categories 
      WHERE a.categories LIKE ? OR b.categories LIKE ? ORDER BY a.id DESC 
"); 

答えて

0

をご照会ですが、テーブルmoviesseriesにはこの名前のカラムが2つありますので、データベースにはどのカラムを検索するか分かりません。

Y行を検索する場合は、おそらくWHERE a.categories LIKE ? OR b.categories LIKE ?を指定する必要があります。ここでは、ムービーまたはシリーズにカテゴリが設定されています。

カテゴリ別に映画とシリーズのペアを検索する場合は、その列で結合する必要があります。しかし、カテゴリーが「コメディー、アクション」などのようなものであれば、それは機能しません。データベースを改造し、テーブルcategoriesを作成してから、IDがカテゴリーの行の映画とID、同じ構造のseries_categoriesmovies_categoriesを作成する必要があります。シリーズなどと同じカテゴリの映画を選択するためのたくさんの質問をすることができるでしょう。

+0

カテゴリには特定のデータベースがありますが、ムービーデータベースに新しいムービーを挿入すると、アクションコメディSFこれはうまくいきますが、IMが好きなときだけです。私がテーブルに加わることを始めたら、それはちょっと難しい。今私はあなたの提案が好きでしたが、それでもまだ1つの映画のタイトルと2つの空のもの、editのコード – Nathaniel

0

私は、私は非常によく理解されてきたわからないんだけど、これを試してみる:

$query = $connection->prepare(" 
SELECT a.hash, 
     a.categories, 
     a.thumb_location, 
     a.name, 
     a.year, 
     b.hash, 
     b.categories, 
     b.thumb_location, 
     b.name, 
     b.year 
     FROM movies AS a 
     LEFT JOIN series AS b 
     ON a.hash = b.hash 
     WHERE a.categories = b.categories ORDER BY id DESC 

「);のWHERE一部にあなたが指定したカラムcategoriesを使用している

関連する問題