2012-02-09 4 views
0

すべてのコースを関連するデータで取得したいと考えています。たとえば、コースのカテゴリとコースのチューター。 1つの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

答えて

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はtutor_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

+0

答えが更新されました。 –

関連する問題