Soy nuevo en PHP / MYSQL. Tengo dos mesas. El personal de la mesa tiene (id, fullname) y la asistencia a la mesa tiene (id, staff_id). Tengo la intención de hacer una consulta para buscar a todo el personal del personal que no tenga su identificación como staff_id en la tabla de asistencia. A continuación se muestra mi código PDO:

$att = $con->prepare('SELECT member_id FROM attendance');
$att->execute();
while ($att_fetch = $att->fetch()) {
$absent = $con->prepare('SELECT * FROM members WHERE id != "'.$att_fetch['member_id'].'" ');
$absent->execute();
$absent_fetch = $absent->fetch();
echo '
  <tr>
   <td class="name" data-id="'.$absent_fetch['id'].'">'.ucwords($absent_fetch['fullname']).'</td>
  </tr> 
';
}

Sorprendentemente, esto devuelve todo el personal presente en la tabla de asistencia. Por favor, ayúdame

0
Stev K 28 ago. 2020 a las 15:06

1 respuesta

La mejor respuesta

Tengo la intención de hacer una consulta para buscar a todo el personal que no tiene su id como staff_id en la tabla attendance.

No necesita dos consultas más algo de lógica PHP para esto. Puede obtener el resultado que desea en una sola consulta, usando not exists:

select s.*
from staff s
where not exists (select 1 from attendance a where a.staff_id = s.id)
0
GMB 28 ago. 2020 a las 12:08