因此,我正在使用數據庫中的幾個表,並且想知道查詢它的最佳方法。MYSQL查詢 - 加入或循環查詢
這裏的設置:
EVENTS:
int event_id
varchar event_name
date event_date
ATTENDANCE:
int attendance_id
int event_id (foreign key for EVENTS)
int user_id (foreign key for USERS)
int status
USERS:
int user_id
varchar first_name
varchar last_name
varchar email
差不多就是我要做的事情,就是有一個我想要得到出席一個事件(ID#),然後查詢考勤表的所有記錄與該事件相匹配的記錄,然後查詢參與參考的所有用戶的用戶表作爲該事件的一部分。
首先想到的是首先查詢數據庫中所有出席條目並獲取數組,然後遍歷每條記錄以查詢用戶信息。然而這看起來效率很低,並且必須有更好的方式來加入或者類似的東西。我沒有太多的加入經驗,所以我想知道我能否得到一些幫助。
這是什麼,我本來想的僞代碼:
SELECT * FROM attendance WHERE event_id = eventID
while (row exists):
SELECT FROM users WHERE user_id = attendanceUserID
get info export in xml...etc.
我不認爲這是要做到這一點的最好辦法,所以這將是更好的方式來做到這一點?
很好的學習機會加入;他們起初可能會感到害怕,但你很快就會變得自然。 [從這裏開始](http://www.w3schools.com/sql/sql_join_inner.asp) –
所以你認爲連接是最好的方式去做這件事? – phouse512
這就是加入。嘗試'選擇 e.event_name,e.event_date, u.first_name,u.last_name,u.email 從事件Ë INNER JOIN上座率ON a.event_id = e.event_id INNER JOIN用戶U ON u.user_id = a.user_id'我只是把它鍵入我的頭頂,這應該給你一個方向去看看 –