![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| rnv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
Здравствуйте! У меня такой вопрос:
В базе данных данные хранятся так: fio exam ocenka data Иванов Математика 01.01.08 Иванов Информатика 01.01.08 Иванов Физика + 01.01.08 Иванов Астрономия 01.01.08 Сидоров Математика 01.01.08 Сидоров Информатика 01.01.08 Если у человека, к примеру, Иванов, есть дата, но нет оценки(это "+"), значит он не сдал экзамен. Если есть оценка и есть дата - сдал. Сам вопрос. Как из этой базы выбрать и вывести данные так, чтобы выводилась фамилия и его не сданные экзамены, причем фамилия не должна повторяться. К примеру: Иванов Математика Информатика Астрономия Сидоров Математика Информатика Заранее спасибо за помощь! |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
нужное тебе должно быть во втором поле результирующего запроса/ первое поле - только для сортировки. з.ы. месье знает толк в извращениях. такой подход дико нерационален в отношени нагрузки на сервер, страшно коряв своим видом и ужасно уродлив своей негибкостью. пока ты не спросил, как тебе отличить фамилию от названия экзамена, идущие в одном поле результата, предложу "оптимизированный" вариант вышенаписанного уродца.
|
||||
|
|||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
1.
skyboy, возможно ты напутал "+" - это когда есть оценка
Но надо уточнить у автора вопроса 2. Возможно ему надо вывести на экран так данные А не получить в таком виде из базы -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
да, напутал. конечно. почти что наверняка(разве что это какое-то дурное учебное задание по SQL). слегка разминал мозгу просто надеюсь, автора смогут отговорить от такого подхода, а то в последнее время что-то несговорчивые попадаются. |
|||
|
||||
| cia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: 4 Всего: 4 |
Да... хреновая база...
Как я понимаю это задачка для учебного заведения. Тогда тебе, скорее всего, скажут что базу надо бы нормализовать. Поэтому попробуй сделать так: 1. создай отдельную таблицу - список учеников и добавь поле ид (счетчик) 2. создай еще одну таблицу - список экзаменов и поле ид(счетчик) 3. создай еще одну таблицу со следующими полями: ид ученика, ид экзамена, дата и (если нужно, оценка). и заноси в эту таблицу информацию о каждом зданном экзамене. В итоге если экзамен сдал - есть запись в таблице №3, если не здал - записи нет. |
|||
|
||||
| rnv |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
Дело в том, что данные хранятся в таком виде в одной таблице базы данных resullt_exm. Я пробовал делать такой запрос с выводом:
Но он выводит, несколько раз человека одного и того же человека. А необходимо сделать чтобы вывелся человек и его не сданные экзамены. Это сообщение отредактировал(а) rnv - 20.4.2008, 18:23 |
||||
|
|||||
| NNaarreekk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 768 Регистрация: 23.6.2007 Где: Армения Репутация: 0 Всего: 3 |
Добавлено через 31 секунду Написал на лету так-что за ошибки не ручаюсь |
|||
|
||||
| rnv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
Спасибо за помощь, все работает. |
|||
|
||||
| NNaarreekk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 768 Регистрация: 23.6.2007 Где: Армения Репутация: 0 Всего: 3 |
Да на здоровье!
Раз получил ответ закрой тему! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |