Как отобразить данные, используя более 2 внешних ключей в SQL? - PullRequest
0 голосов
/ 03 января 2019

В моей базе данных есть 4 таблицы: студент, комитет, мероприятие, evtstatus.Мне нужно получить некоторые данные из каждой таблицы.

Я уже пробовал это в mysqli, но я получаю некоторые ошибки, например

Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_resultлогическое значение указано в C: \ xampp \ htdocs \ Student \ index.php в строке 106

студент:

   student_id | name     | member_type 
   10         | Ali      | Not A Member         
   14         | James    | Member of Taekwando 
   15         | Bakar    | Not A Member   

комитет:

   committee_id  | email             | image        |
             1   | abc@gmail.com     | pic.jpg      |
             2   | abccd@ymail.com   | pic1.jpg     |
             3   | shdhs@yahoo.com   | pic2.jpg     |

событие:

   event_id  |   event_name     | start_date            | committee_id |
         11  | Sport Meeting    | 2018-12-19 20:00:00   |       1      |
         12  | Yamacha Tonite   | 2018-12-18 21:00:44   |       1      |
         13  | Family Gathering | 2018-12-17 22:00:44   |       3      |

evtstatus:

   evt_id   | event_id | student_id    | status_info |
      111   |     11   |       10      |   Not Going |
      112   |     12   |       14      |   Going     |
      113   |     13   |       15      |   Going     |

Идентификатор комитета в событии и комитете одинаков.'event_id' в событии и evtstatus также одинаковы.

Я хочу выбрать имя события, start_date, student_id, member_type, status_info, которое в файле Committee_id == 1

Таким образом, результат запроса должен быть (в данном случае)

Sport Meeting | 2018-12-19 20:00:00 | 10 | Not A Member        | Not Going
Yamacha Tonite| 2018-12-18 21:00:44 | 14 | Member of Taekwando | Going

1 Ответ

0 голосов
/ 03 января 2019

Используя типичные JOIN s, вы можете сделать это:

select
  e.event_name,
  e.start_date,
  es.student_id,
  s.member_type,
  es.status_info
from evtstatus es
join student s on s.student_id = es.student_id
join event e on e.event_id = es.event_id
join committee c on c.committee_id = e.committee_id
where e.committee_id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...