2

哦哦哦。我有两个表客户端和用户。两者都有 AUTO_INCREMENT id,但客户端表有 credid-column ,它是外键和对用户表 id 的引用。

我想准备一个 PHP PDO 语句,它从客户端表中获取所有列,并且只从用户表中获取用户名列,其中客户端表的列 credid = :var 和用户表的列 id = :var

到目前为止,我有这样的东西,但它不工作

$userid = $_SESSION['id']; //echoes a number
    $STH = $DBH->prepare("SELECT * FROM client WHERE credid = :id AND username FROM users
    WHERE id = :id");
    $credentials = array(
        ':id' => $userid
    );
    $STH->execute($credentials);

然后像这样

    if ($STH->rowCount() > 0) {
        $result = $STH->fetch(PDO::FETCH_ASSOC);
        echo $result['columnfoo'];
        echo $result['anothercolumn'];
        echo etc.
        .
        .
        .

    }

这将返回有关 sql 语法的错误....

我也尝试过这样的事情:

    SELECT client.*,users.username FROM client,users WHERE client.credid =users.id = :id

不返回任何错误,但也不返回任何数据......我应该如何构建我准备好的查询?

4

1 回答 1

5

您需要使用join

SELECT c.*, u.username
FROM   client c
JOIN   users u ON u.id = c.credid
WHERE  credid = :id
于 2014-09-08T09:30:50.213 回答