左连接相同的字段选择所有行

时间:2013-12-09 01:52:27

标签: php mysql sql pdo

如何在UsrId = 1的表UsrArticle中选择行? 我是新用的连接,下面是我的代码有什么问题它只打印空数组吗?

表Usr

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);

1 个答案:

答案 0 :(得分:0)

它会失败,因为UsrID不明确(您指的是哪个列有多种可能性)。我知道这很愚蠢因为你的条件规定它们应该是相同的,但这就是SQL的工作方式。将表别名添加到该字段名称的前缀:

... WHERE Usr.UsrId = :UsrId