|
|
|
|
|
для: Брянский
(04.12.2009 в 19:04)
| | Тогда как-то так:
SELECT b.* FROM balls b
JOIN lesson l ON b.ball_lesson_id = l.lesson_id
JOIN subject_journal j ON l.lesson_subject_journal_id = j.subject_journal_id
WHERE b.ball_student_id= $student_id AND b.ball != '' AND b.type='8' AND b.ball_date BETWEEN '$odate' AND '$ndate'
AND j.subject_journal_subject_id = $subject_id;
|
| |
|
|
|
|
 52.2 Кб |
|
|
для: Trianon
(04.12.2009 в 18:26)
| | Вот прикрепил наглядную структуру базы данных, думаю там будет все понятно. | |
|
|
|
|
|
|
|
для: Fractured#
(04.12.2009 в 18:05)
| | Да, это учебная задача, поэтому так не пройдет... | |
|
|
|
|
|
|
|
для: Брянский
(04.12.2009 в 15:02)
| | а что это за страшная таблица subject_journal ?
Какую сущность она описывает? | |
|
|
|
|
|
|
|
для: Брянский
(04.12.2009 в 15:02)
| | Это учебная задача? Лучше было бы в таблицу balls добавить subject_id, думаю. Но для учебной денормализация может быть запрещена. | |
|
|
|
|
|
|
| ЗДРАВСТВУЙТЕ.
Имется таблицы:
CREATE TABLE `balls` (
`ball_id` int(10) unsigned NOT NULL auto_increment,
`ball_lesson_id` int(11) NOT NULL default '0',
`ball_student_id` int(11) NOT NULL default '0',
`ball_date` date default NULL,
`ball` char(3) NOT NULL default '',
`type` int(3) NOT NULL,
PRIMARY KEY (`ball_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
CREATE TABLE `lesson` (
`lesson_id` int(10) unsigned NOT NULL auto_increment,
`lesson_subject_journal_id` int(11) NOT NULL default '0',
`lesson_date` date default NULL,
`topic` text,
`task` text,
PRIMARY KEY (`lesson_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
CREATE TABLE `subject_journal` (
`subject_journal_id` int(10) unsigned NOT NULL auto_increment,
`quater_id` int(11) NOT NULL default '0',
`subject_journal_class_id` int(11) NOT NULL default '0',
`subject_journal_subject_id` int(11) default NULL,
`subject_journal_teacher_id` int(11) NOT NULL default '0',
`hours` int(11) default NULL,
PRIMARY KEY (`subject_journal_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
CREATE TABLE `subject` (
`subject_id` int(10) unsigned NOT NULL auto_increment,
`subject_name` varchar(20) NOT NULL default '',
PRIMARY KEY (`subject_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=13 ;
|
Вот мой запрос, который выводит оценки по всем предметам:
SELECT * FROM balls WHERE ball_student_id=$student_id AND ball != '' AND type='8' AND ball_date BETWEEN '$odate' AND '$ndate'
|
Мне нужно выводить оценки по определенным предметам.
Подскажите как это сделать?
P.S. Заранее большое спасибо! | |
|
|
|
|