我现在遇到的问题是,如果我的 MySql 表中有数据,我将获得重复的数据。但是,如果我的一张表为空,则无法显示所有数据。
这是我的代码:
$stmt = $DB_con->prepare("SELECT * FROM applicantpersonaldetails apd "
. "JOIN employementdetails ed ON apd.ApplicantID = ed.ApplicantID "
. "JOIN sourceoffunds sof ON apd.ApplicantID = sof.ApplicantID "
. "JOIN existingbankproducts ext ON apd.ApplicantID = ext.ApplicantID "
. "WHERE apd.AccountID ='{$accountId}' AND applicantType ='joint1';");
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
extract($row);
echo $row['EmploymentStatus'];
?>
<?php
}
} else {
?>
<div class="">
<div class="alert alert-warning">
<span class="glyphicon glyphicon-info-sign"></span> No Data Found ...
</div>
</div>
<?php
}
最佳答案
如果您想要所有行,甚至不匹配的行,请使用LEFT JOIN
:
SELECT *
FROM applicantpersonaldetails apd LEFT JOIN
employementdetails ed
ON apd.ApplicantID = ed.ApplicantID LEFT JOIN
sourceoffunds sof
ON apd.ApplicantID = sof.ApplicantID LEFT JOIN
existingbankproducts ext
ON apd.ApplicantID = ext.ApplicantID
WHERE apd.AccountID ='{$accountId}' AND applicantType = 'joint1';
注意:尚不清楚 applicantType
来自哪个表。如果它不是来自 apd
,那么您可能希望将其包含在适当的 ON
子句中,而不是包含在 WHERE
子句中。
关于php - 没有显示数据 MySql php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45024511/