哦哦好吧。我有两个表 client 和 users。两者都有 AUTO_INCRMENT 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
不返回任何错误,但也不返回任何数据... 我应该如何构建我准备好的查询?
最佳答案
您需要使用加入
:
SELECT c.*, u.username
FROM client c
JOIN users u ON u.id = c.credid
WHERE credid = :id
关于sql - mysql - 从一个表中选择所有内容,并从另一个表中选择一列,其中找到 $var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721054/