簡體   English   中英

如何在sql中使用2個以上的外鍵顯示數據?

[英]How to display data using more than 2 foreign key in sql?

我的數據庫中有 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      |

事件狀態:

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

事件和委員會中的“committee_id”是相同的。 event 和 evtstatus 中的 'event_id' 也相同。

我想選擇commission_id == 1下的事件名稱,start_date,student_id,member_type,status_info

所以查詢結果應該是(在這種情況下)

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

使用典型的JOIN可以做到這一點:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM