我正在创建一个页面,显示已扫描进出办公室的设备的信息。我希望它显示的方式是
设备名称用户(Headtech)使用的事件返回(是/否)
问题是SQL表到处都是,并且加入它们都证明是困难的。需要有一个链表通过三个表来获得Head技术名称,这不是我的设计,我无法改变它。
我目前拥有什么
$select = mysqli_query($con, "SELECT *
FROM equipment
JOIN pay
ON pay.eventid = equipment.eventid
JOIN personnel
ON personnel.workerid = (pay.eventid WHERE role = 'aht')
JOIN events
ON events.id = equipment.eventid
WHERE status='3'
ORDER By timeOut DESC");
while($row = mysqli_fetch_array($select)) {
$name = $row['name'];
$timeIn = $row['timeIn'];
$timeOut = $row['timeOut'];
$eventID = $row['eventid'];
echo "<div><div class='rowBoxS'>$name</div>";
$htName = $row['personnel.first'] . " " . $row['perosnnel.last'];
echo "<div class='rowBoxS'>$htName</div>";
$event = $row['eventName'];
echo "<div class='rowBoxS'>$event</div>";
if ($timeOut > 0){
echo "<div class='rowBoxS'>$</div></div>";
}
else{
echo "<div class='rowBoxS'>Failed to return</div></div>";
}
这显然不能按预期工作,而且我非常清楚,这可能不是加入的方式,尤其是pay.eventid WHERE role ='aht'位。我想知道是否有适当的方法来解决这个问题。我尝试查找它,但大多数人可能都有他们正在使用的干净数据库,并且不可能遇到这个问题。
编辑: 所有表都在同一台服务器上。问题是,如果我想得到某个人的姓名,你需要使用pay表上的设备中的eventid行找到该id,然后通过'role'行找到具有AHT角色的用户,然后将那些personid人员带入人员表在那里你终于找到了人名。