2017-03-18 3 views
0

Ich versuche, 2 Tabellen mit den gleichen Kategorien zu verbinden, aber es funktioniert nicht ganz, es gibt keine Ergebnisse zurück.Tabellen mit denselben Kategorien verbinden

Ich habe 2 Tabellen TV-Shows und Filme und beide haben Spalten Kategorien jetzt möchte ich durch alle von ihnen gehen und sehen, ob Kategorien übereinstimmen und sie zurück, aber ich weiß nicht, was ist falsch mit diesem. Bitte schauen Sie, danke!

$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 
"); 

Antwort

0

Sie verwenden Spalte mit dem Namen categories in WHERE Teil Ihrer Abfrage, aber es gibt zwei Spalten mit diesem Namen in den Tabellen movies und series, so dass die Datenbank nicht weiß, in welcher Spalte gesucht werden soll.

Y Sie müssen wahrscheinlich WHERE a.categories LIKE ? OR b.categories LIKE ? angeben, wenn Sie Zeilen suchen möchten, in denen eine Kategorie für Film oder Serie festgelegt ist.

Wenn Sie nach Filmen und Serienpaaren nach Kategorien suchen möchten, sollten Sie ihnen nach dieser Spalte beitreten. Aber wenn Kategorien etwas wie "Komödie, Action" usw. sind, wird es nicht funktionieren. Sie sollten eine Datenbankumgestaltung in Erwägung ziehen und die Tabelle categories und dann movies_categories mit der ID des Films und der ID der Kategoriereihen und series_categories mit derselben Struktur erstellen. Dann können Sie viele Fragen für die Auswahl von Filmen, die Kategorien wie Serien usw. hat.

+0

Ich habe eine bestimmte db für Kategorien, aber wenn ich einen neuen Film in Film-Datenbank einfügen geht es wie Action Comedy Sci-Fi , das funktioniert, aber nur wenn ich im LIKE bin? auf Filme, aber wenn ich anfange, Tabellen zu verbinden, tut es irgendwie nicht. Jetzt habe ich dich vorgeschlagen, aber immer noch, es kommt jetzt wie 1 Filmtitel und 2 leere, Code in Bearbeitung – Nathaniel

0

Ich bin nicht sicher, dass ich sehr gut verstanden habe, aber geben diese einen Versuch:

$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 

„);

Verwandte Themen