PDO多个内部联接似乎是循环的

时间:2016-06-10 12:50:50

标签: php mysql pdo

我第一次使用INNER JOIN而且我有点困惑。

我有3张桌子:

dog
client
dogclient

我试图从clientdog表中获取dogclient表中每条记录的信息。当我这样做时,结果如下:

[{"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"}]

我用来进行此查询的功能是:

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;

谁能看到我出错的地方?

或者,有没有人知道更好的方法呢?

如果它有帮助,dog表中只有2只狗,client表中有一个客户端,dogclient表中有2条记录,所以我期待2个结果

1 个答案:

答案 0 :(得分:1)

试试这个:

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