2012-02-09 64 views
0

我想檢索所有課程及其相關數據。例如課程的類別和課程的導師。我可以在一個Select語句中使用連接來檢索我需要的數據嗎?我如何從5個不同的表中加入記錄?

我有以下模式

tbl_courses (id, name, description, tutor_id, date) 
tbl_course_categories (id, course_id, category_id) 
tbl_categories (id, name, parent_id) 
tbl_users (id, username, email, password) 
tbl_tutors (id, first name, last name, user_id) 
+0

這看起來像一個功課。是嗎?請標記它是否是。 – dasblinkenlight 2012-02-09 12:18:12

回答

1
SELECT 
    c.NAME AS CourseName, 
    ca.Name AS CategoryName, 
    t.First_name + t.Last_name AS TutorName 
FROM tbl_courses c 
JOIN tbl_course_categories cc 
    ON cc.course_id = c.Id 
JOIN tbl_categories ca 
    ON ca.Id = cc.category_id 
JOIN tbl_users u 
    ON u.Id = c.tutor_id 
JOIN tbl_tutor t 
    ON t.User_id = u.id 

SELECT 
    c.NAME AS CourseName, 
    GROUP_CONCAT(ca.Name+ ' ') AS Categories, 
    t.First_name + t.Last_name AS TytorName 
FROM tbl_courses c 
JOIN tbl_course_categories cc 
    ON cc.course_id = c.Id 
JOIN tbl_categories ca 
    ON ca.Id = cc.category_id 
JOIN tbl_users u 
    ON u.Id = c.tutor_id 
JOIN tbl_tutor t 
    ON t.User_id = u.id 
GROUP BY c.NAME, t.First_name + t.Last_name 
+0

tutor_id是來自user_id的FK,而來自tutors表的user_id是FK到id,你是如何做到的,它的工作原理,但是當我嘗試改變它不再工作時:JOIN tbl_users s ON s.id = c.tutor_id JON tbl_tutors t ON t.user_id = s.id – Mythriel 2012-02-09 12:38:59

+0

已更新的答案。 – 2012-02-09 12:45:40

相關問題