Как я могу объединить записи из 5 разных таблиц? - PullRequest
0 голосов
/ 09 февраля 2012

Я хочу получить все курсы с соответствующими данными.Например, категории, в которых находится курс, и репетитор по курсу.Могу ли я сделать это в одном операторе Select с помощью объединений для извлечения нужных мне данных?

Мне нужна следующая схема

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)

1 Ответ

1 голос
/ 09 февраля 2012
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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...