如何选择 UsrArticle 表中 UsrId = 1 的行? 我刚开始使用 join,下面是我的代码是否有问题它只打印空数组?
表用户
id UsrId
0 0
1 1
2 2
3 3
表 UsrArticle
ArticleId UsrId
0 1
1 0
2 1
3 1
4 1
5 3
PHP
$UsrId = 1;
$sth = $db->prepare("SELECT * FROM Usr LEFT JOIN UsrArticle ON (Usr.UsrId = UsrArticle.UsrId) WHERE UsrId = :UsrId");
$sth->bindParam(':UsrId',$UsrId,PDO::PARAM_INT);
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();
$ArticleRows = $sth->fetchAll();
print_r($ArticleRows);
最佳答案
它将失败,因为 UsrID
不明确(您指的是哪一列有多种可能性)。我知道这很愚蠢,因为您的条件指定它们应该相同,但这就是 SQL 的工作原理。将表别名添加到该字段名称的前缀:
... WHERE Usr.UsrId = :UsrId
关于php - 左连接同一字段选择所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20461785/