2

オーケー。クライアントとユーザーの 2 つのテーブルがあります。両方とも AUTO_INCREMENT id を持っていますが、クライアント テーブルには credid-column があり、これは外部キーであり、users テーブルの id への参照です。

client-table からすべての列をフェッチし、users-table から username-column のみをフェッチする 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 に答える