Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Группировка результатов выборки
 
 автор: SHAman   (12.02.2007 в 16:38)   письмо автору
 
 

С MySQL работал очень мало. Пытаюсь наверстать. Сейчас подкинули работку - не знаю как сделать...

В общем, в инсте есть куча преподов. Есть приложение - вводишь имя препода в строку ввода - выводятся все преподы с таким именем.
Пишу:


SELECT * FROM `prepod` WHERE prepod.fa='$post{search}' or prepod.im='$post{search}' ORDER BY prepod.fa


Все пашет. Но возникла необходимость группировать преподов по кафедрам. Список кафедр, ясен пень, хранится в отдельной таблице. Я вот не знаю как быть. Не то отдельно запрос делать и формировать хэш кафедр, но как-то коряво получается... Нельзя ли это сделать одним запросом? Скажем, чтобы в результате получилась таблица, содержащая и данные о преподе и данные о кафедрах?

   
 
 автор: Trianon   (12.02.2007 в 16:48)   письмо автору
 
   для: SHAman   (12.02.2007 в 16:38)
 


SELECT prepod.*, kafedra.name 
FROM prepod JOIN kafedra ON prepod.id_kaf = kafedra.id 
WHERE prepod.fa='$post{search}' or prepod.im='$post{search}' 
ORDER BY kafedra.name, prepod.fa 

   
 
 автор: SHAman   (12.02.2007 в 18:04)   письмо автору
 
   для: Trianon   (12.02.2007 в 16:48)
 

Все усложнилось... оказывается, там есть промежуточная таблица, связывающая препода с кафедрой.

Пишу:

            SELECT * FROM `prepod`, `kaf_prp`, `kafedra` WHERE
            prepod.fa=$qoute_search
            AND
            kaf_prp.pr_id=prepod.pr_id
            AND
            kafedra.kaf_id = kaf_prp.kf_id
            OR
            prepod.im=$qoute_search
            AND
            kaf_prp.pr_id=prepod.pr_id
            AND
            kafedra.kaf_id = kaf_prp.kf_id
            ORDER BY kaf_prp.pr_id, prepod.fa, prepod.im


Не пашет :(

без
AND
kafedra.kaf_id = kaf_prp.kf_id
работает...

   
 
 автор: Trianon   (12.02.2007 в 18:12)   письмо автору
 
   для: SHAman   (12.02.2007 в 18:04)
 


SELECT prepod.*, kafedra.name 
  FROM prepod 
    JOIN kaf_prp ON kaf_prp.pr_id=prepod.pr_id 
    JOIN kafedra ON kafedra.kaf_id = kaf_prp.kf_id
  WHERE prepod.fa=$qoute_search OR prepod.im=$qoute_search 
  ORDER BY kafedra.name, prepod.fa, prepod.im 

   
 
 автор: SHAman   (12.02.2007 в 18:30)   письмо автору
 
   для: Trianon   (12.02.2007 в 18:12)
 

Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования