Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Есть несколько связанных таблиц, примерно таких Преподаватели CREATE TABLE teachers ( tch_id INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Id', tch_FName VARCHAR(25) NOT NULL COMMENT 'Имя', PRIMARY KEY (tch_id) ) Студенты CREATE TABLE Students ( std_id INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Код студента', std_FName VARCHAR(32) NOT NULL COMMENT 'Имя', std_LName VARCHAR(15) DEFAULT NULL COMMENT 'Фамилия', PRIMARY KEY (std_id) ) Уроки CREATE TABLE lessons ( les_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Id', les_date DATE NOT NULL COMMENT 'Дата', les_std_id INT(11) NOT NULL COMMENT 'Код студента', les_tch_id INT(11) NOT NULL COMMENT 'Код преподавателя', PRIMARY KEY (les_id), UNIQUE INDEX K_Date_id (les_date, les_id), UNIQUE INDEX K_std_id_Date_les_id (les_std_id, les_date, les_id), CONSTRAINT FK_lessons_Students_std_id FOREIGN KEY (les_std_id) REFERENCES Students(std_id) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT FK_lessons_teachers_tch_id FOREIGN KEY (les_tch_id) REFERENCES teachers(tch_id) ON DELETE RESTRICT ON UPDATE RESTRICT ) Я сделал вот такой запрос SELECT les_id, MAX(les_date), les_std_id, std_FName, std_LName, les_tch_id, tch_FName, tch_LName FROM lessons, Students, teachers WHERE les_std_id = std_id AND les_tch_id = tch_id GROUP BY les_std_id; Запрос выбрал уроки с максимальной датой для каждого студента. Но мне нужно выбрать только те уроки, где максимальная дата меньше сегодня на 3 дня. Вот тут у меня ступор. Подскажите куда копать, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2017, 14:48 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Напишите ещё условия в секцию отбора (WHERE). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2017, 15:12 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
AkinaНапишите ещё условия в секцию отбора (WHERE). добавил AND les_date < current_date Но это выбирает максимальную дату, которая меньше текущей, даже если есть уроки новее текущей даты. А мне нужно, чтобы максимальная дата урока была меньше текущей даты и была последним уроком в базе для каждого студента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2017, 16:09 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
А вот теперь - постановку задачи полностью и с нуля. Потому как сейчас два куска. и один хрен не понять, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2017, 16:11 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
AkinaА вот теперь - постановку задачи полностью и с нуля. Потому как сейчас два куска. и один хрен не понять, что нужно. Есть таблица оплаченных уроков студентов, связанная с таблицами студентов и преподавателей. Этим запросом я выбираю уроки с максимальной датой. SELECT les_id, MAX(les_date), les_std_id, std_FName, std_LName, les_tch_id, tch_FName, tch_LName FROM lessons, Students, teachers WHERE les_std_id = std_id AND les_tch_id = tch_id GROUP BY les_std_id; Но мне нужно выбрать только те уроки, где максимальная дата меньше текущей, то есть новее уроков нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2017, 16:15 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Вас просили только постановку задачи, а не Ваши мысли о том, как её решать, и уж тем более не тексты запросов, делающих не то, что нужно. Ладно, попробую сам. Необходимо выбрать сведения о студенте и последнем его уроке, причём только те, где дата этого последнего урока не превышает некую заданную дату (например, "дата меньше сегодня на 3 дня"). Если постановка задачи верна, то решение ищется в FAQ: Выборка первой/последней записи в группах . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2017, 19:37 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
AkinaЕсли постановка задачи верна, то решение ищется в FAQ: Выборка первой/последней записи в группах . Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2017, 10:01 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39440953&tid=1830744]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 135ms |

| 0 / 0 |
