2016-07-26 12 views
0

Ich habe eine Tabelle Produkt und Klassifizierung und eine Join-Tabelle Product_Classification. Ich habe eine Abfrage geschrieben, um die Tabellen zu durchsuchen. Eine Sache, die ich bemerke, ist, dass, wenn ich einen Produktdatensatz (oder Klassifikation) habe, der nicht der Klassifizierung zugeordnet ist, die Abfrage nichts zurückgibt. Wie kann ich meine Abfrage so ändern, dass sie auch ein Produkt zurückgibt, dem keine Klassifizierung zugeordnet ist (und keine Klassifizierungsdaten, die keinem Produkt zugeordnet sind).Durch mehrere Tabellen durchsuchen mysql

$query = "Select * from $dbname.Product P INNER JOIN Product_Classification PC ON P.ProductID = PC.ProductID INNER JOIN Classification C ON PC.ClassificationID = C.ClassificationID "; 

EDIT: Ich habe einen Wo Bedingung, die diese Abfrage ein Array von Feldern

+1

Verwenden Sie links beitreten in Ihre Abfrage –

+2

Bearbeiten Sie Ihre Frage und bieten (1) Beispieldaten und gewünschte Ergebnisse; (2) Eine vollständigere Abfrage. –

+0

'left join' erlaubt NULL Werte in der * right * Tabelle (in' von left_table left join right_table') Ich denke, 'outer join' könnte liefern, was Sie wollen. – Jakumi

Antwort

0

Einsatz ist

Select * from $dbname.Product P INNER JOIN Product_Classification PC ON P.ProductID = PC.ProductID LEFT JOIN Classification C ON PC.ClassificationID = C.ClassificationID 
1

Sie diese Abfrage

$query = "Select * from $dbname.Product P LEFT JOIN Product_Classification PC ON P.ProductID = PC.ProductID LEFT JOIN Classification C ON PC.ClassificationID = C.ClassificationID "; 

Wenn Sie verwenden können, Möchten Sie mehr über Joins sehen, hilft dieser Link Ihnen https://stackoverflow.com/a/4715847/6098214