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

标签 php mysql pdo

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

我有 3 张 table :

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 表中只有 1 个客户端,dogclient 中有 2 条记录> 表,所以我期待 2 个结果

最佳答案

试试这个:

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

关于php - PDO 多个内部联接似乎是循环的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37748772/

相关文章:

MySQL只插入第一行

Mysql - 对具有相同列内容的行进行排序

php - 如何在 PHP 中使用 PDO 从 SQL Server 数据库中获取数据并在 UTF-8 编码的 MySQL 数据库中正确编码?

php - PDO 不抛出任何错误

php - 尝试在 php pdo 中 catch,以正确的方式执行

javascript - 如何在 PHP 标签外混合使用 json_encode 和 html 和 php

php - fopen : failed to open stream: Permission denied in PHP on Mac

MySQL,删除重复项

php - 我写了一个记录所有输入和其他东西的错误记录脚本

php - "Has A"或 "Belongs To"关系还是其他什么?