2016-06-10 13 views
0

Ich benutze INNER JOIN zum ersten Mal und ich bin ein wenig verwirrt.PDO mehrere innere Joins scheinen zu loopen

Ich habe 3 Tabellen:

dog 
client 
dogclient 

Ich versuche, Informationen von den beiden client und dog Tabellen für jeden Datensatz in dem dogclient Tisch zu bekommen. wenn ich das tue, ist das Ergebnis folgendermaßen aus:

[{"ID":"1","Name":"Sparky","Forename":"Jamie","Surname":"McAllister"}, 
{"ID":"1","Name":"Sparky","Forename":"Jamie","Surname":"McAllister"}, 
{"ID":"2","Name":"Scruff","Forename":"Jamie","Surname":"McAllister"}, 
{"ID":"2","Name":"Scruff","Forename":"Jamie","Surname":"McAllister"}] 

Die Funktion verwende ich diese Abfrage zu machen ist:

function getAll(){ 

    $conn = self::connect(); 

    $stmt = $conn->prepare("SELECT dog.ID, dog.Name, client.Forename, client.Surname FROM dogclient INNER JOIN client ON dogClient.ClientID INNER JOIN dog ON dogclient.DogID"); 
    $stmt->execute(); 

    // set the resulting array to associative 
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    $response = $stmt->fetchAll(); 

    return $response; 

Kann jemand sehen, wo ich falsch gegangen?

oder kennt jemand einen besseren Weg, dies zu tun?

, wenn es hilft, gibt es nur zwei Hunde in dem dog Tisch, ein Client in der client Tabelle und 2 Datensätze in der dogclient Tabelle, so dass ich erwartet habe 2 Ergebnisse

+0

Dies ist eine reine MySQL-bezogene Frage, ich empfehle das Entfernen des PHP-Tags und des Codes. Geben Sie einfach an, wie Ihre Tabelle (n) strukturiert sind und formatieren Sie eine SQL-Abfrage. – martijnn2008

Antwort

1

starten:

INNER JOIN client ON dogClient.ClientID = client.ClientID INNER JOIN dog ON dogclient.DogID = dog.DogID 
+0

Ich habe eine Antwort zu dieser Antwort eingereicht, die Antwort ist richtig, andere als die Feldnamen sind falsch :) danke –