繁体   English   中英

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

[英]left join same field select all rows

如何在表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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM