我的表中有一个名为spon_applicant_ID
的列,它看起来像这样:
AUTO_INCREMENT
默认值正常工作:
但是当我尝试从数据库中提取值时,它是NULL
:
$conn = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'user', 'PW');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT * FROM spon_applicants sa LEFT OUTER JOIN spon_results sr ON sa.spon_applicant_ID = sr.spon_applicant_ID WHERE sr.spon_results_ID IS NULL ';
$stmt = $conn->prepare($sql);
$stmt->execute();
if($stmt->rowCount() > 0){
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
var_dump($results);
我的结果如下:
array(17) {
[0]=>
array(37) {
["spon_applicant_ID"]=>
NULL
["application_date"]=>
string(19) "2016-02-04 16:41:16"
等等。
如何使用数据库中的spon_applicant_ID
字段?我对AUTO_INCREMENT
的理解是否正确,因为它是mySQL等同的身份?
答案 0 :(得分:0)
仅使用LEFT JOIN
代替LEFT OUTER
,如果没有等效值,则为空
答案 1 :(得分:0)
来自您上次的评论:
@devpro,你能解决这个问题吗?这是对的。谢谢。 - etm124 1小时前
您需要使用别名和列名称,因为两个表中的列名相同。
示例:强>
SELECT sa.spon_applicant_ID ...