Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Работа с GROUOP_CONCAT (Hamyachok) 25/12/2012 - 13:48:42
      Re: Работа с GROUP_CONCAT (Akina) 25/12/2012 - 18:07:28
      Re: Работа с GROUP_CONCAT (Hamyachok) 26/12/2012 - 16:13:38



From: Hamyachok - 25/12/2012 - 13:48:42
Subject:Работа с GROUOP_CONCAT
-----------------
Здравствуйте мастера. Задача такая. Есть четыре таблицы:
lessons
id, Name

teachers
id, Name

class
id, Name

lesson_teacher_class
id, id_lesson, id_teacher, id_class

С помощью этих таблиц определяется связка, какой учитель ведет тот или иной предмет в каком классе. Например
Мария Антоновна - русский язык - 5А

Задача простая. Есть журнал предметов, таблица типа
Предмет, Учитель(урок)
Хочу чтоб в таблицу выводился список уроков и список учителей с классами в которых он ведет. Решил, её, но получается ненаглядно.
Вот код
select l.*, GROUP_CONCAT(concat(t.Name, '(', c.Name, ')') ORDER BY c.Name ASC SEPARATOR ', ' ) AS teachers
from lessons as l left join lesson_teacher_class as ltc on l.id = ltc.id_lesson and ltc.deleted = 0 left join classes as c on ltc.id_class = c.id and c.deleted = 0 left join teachers as t on ltc.id_teacher = t.id and t.deleted = 0
where l.deleted = 0 group by l.id order by l.Name asc

Выбор идет от предмета.
В результате получаем такую таблицу:
Название | Учитель(урок)
Алгебра | Мария Антоновна(5А), Иван Степанович(5Б), Мария Антоновна(5Б), Мария Антоновна(5В)
.......
Я хочу, чтоб таблица была вида
Название | Учитель(урок)
Алгебра | Мария Антоновна(5А, 5Б, 5В), Иван Степанович(5Б)

Мне кажется, так будет значительно наглядней и удобней. Пробовал разные комбинации group_concat, но так ничего не получилось. Как быть? есть вариант решить эту задачу без хранимой процедуры и через один запрос от php?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41940



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |