我是MySQL和PHP新手,我需要你的帮助。我已经为员工在公司做的签入制作了一个网络应用程序。我有一个名为tblemployees的SQL表,它具有员工的emp_id、名称、电子邮件id等。另一个表名为tblentries,包含每个雇员的所有条目和诸如ID之类的变量。emp_id、名称、日期、小时等。tblemployees的主键是emp_id,emp_id是tblentries表的外键。我想在我的网络应用程序中做一个表格,显示当天挂起的支票。更具体地说,到目前为止,我的代码是:
<div class = "pb-20" id = "tab">
<table class = "data-table table stripe hover nowrap">
<thead>
<tr>
<th class = "table-plus">Full Name</th>
<th>Email</th>
<th>1st Comp.</th>
<th>2nd</th>
<th>3rd</th>
<th>4th</th>
<th>5th</th>
<th>Department</th>
<th>Position</th>
</tr>
</thead>
<tbody>
<tr>
<?php
$sql = "SELECT tblemployees.Name, tblemployees.EmailId, tblemployees.Company1, tblemployees.Company2, tblemployees.Company3, tblemployees.Company4, tblemployees.Company5, tblemployees.Department, tblemployees.role FROM tblemployees LEFT JOIN tblentries ON tblentries.Date < '$todaysdate'";
$query = mysqli_query($conn, $sql) or die(mysqli_error());
while ($row = mysqli_fetch_array($query)) {
?>
<td class = "table-plus">
<div class = "name-avatar d-flex align-items-center">
<div class = "txt">
<div class = "weight-600"><?php echo $row['Name']; ?></div>
</div>
</div>
</td>
<td><?php echo $row['EmailId']; ?></td>
<td><?php echo $row['Company1']; ?></td>
<td><?php echo $row['Company2']; ?></td>
<td><?php echo $row['Company3']; ?></td>
<td><?php echo $row['Company4']; ?></td>
<td><?php echo $row['Company5']; ?></td>
<td><?php echo $row['Department']; ?></td>
<td><?php echo $row['role']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>*“今天$today”是一个存储今天日期的变量。它的格式与tblentries.Date相同。
到目前为止,无论我尝试了什么,我都没有取得正确的结果。我做了一些测试应用程序的条目,我想要制作的表格显示了我为测试所做的条目的雇员的名字。(测试条目是在过去做的,所以它们的日期比$todaysdate小。我不知道用哪一种更好,怎么不在里面,不存在还是左联接?谢谢您:)
发布于 2022-03-31 07:18:13
找到了解决办法。我使用WHERE NOT EXISTS(),以便获取属于tblemployees表且在tblentries表中没有CURATE()条目的人的名称等:
$sql = "SELECT DISTINCT tblemployees.Name, tblemployees.EmailId, tblemployees.Company1, tblemployees.Company2, tblemployees.Company3, tblemployees.Company4, tblemployees.Company5, tblemployees.Department, tblemployees.role
FROM tblemployees
WHERE NOT EXISTS ( SELECT DISTINCT tblentries.emp_id, tblentries.Date FROM tblentries WHERE tblentries.emp_id = tblemployees.emp_id AND tblentries.Date = '$todaysdate')"; https://stackoverflow.com/questions/71672828
复制相似问题