Запрос из двух таблиц, где совпадение может быть в любой таблице из переданных данных - PullRequest
0 голосов
/ 23 марта 2020

У меня есть почтовая система, где студенты могут получать сообщения от студентов, а также от сотрудников и наоборот. Однако таблица персонала отличается от таблицы студентов.

Псевдо:

Я хочу получить name и picture, где message_by может быть от staffs table или students table

message_by может быть либо идентификатором студента, либо идентификатором персонала.

Я попробовал это, и я знаю, что это неправильно, но каким-то образом это работает для студентов и портится, когда он находит персонал в столбце message_by

<?php

 $message_by = $irow['message_by'];

 $fql = "SELECT DISTINCT s.first_name as first_name, 
     s.other_names as other_names, s.avatar as avatar
     FROM lm_students s, lm_staff c WHERE s.index_number = ? OR c.staff_id = ? ";  

 $fstmt = $db->prepare($fql);
 $fstmt->bind_param('ss',$message_by,$message_by);
 $fstmt->execute();

      $fstmt->store_result();
      $fstmt->bind_result($first_name,$other_names,$s_avatar);
      $fstmt->fetch();

?>

Я знаю, что не использую c.staff_id, потому что я не знаю, как заставить его работать для обоих.

Надеюсь, каждый может помочь. Спасибо

1 Ответ

0 голосов
/ 23 марта 2020

Так что этот запрос работает сейчас

<?php 

 $fql = "SELECT DISTINCT first_name,other_names,avatar FROM lm_students WHERE index_number = ? UNION SELECT first_name,other_names,avatar FROM lm_staff WHERE  staff_id = ?";
?>

Надеюсь, кто-то найдет его полезным, но в любое время будет признателен лучший подход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...