powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
7 сообщений из 7, страница 1 из 1
Помогите с запросом
    #39440953
savsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть несколько связанных таблиц, примерно таких

Преподаватели

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 дня. Вот тут у меня ступор. Подскажите куда копать, плиз.
...
Рейтинг: 0 / 0
Помогите с запросом
    #39440976
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите ещё условия в секцию отбора (WHERE).
...
Рейтинг: 0 / 0
Помогите с запросом
    #39441026
savsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaНапишите ещё условия в секцию отбора (WHERE).

добавил AND les_date < current_date

Но это выбирает максимальную дату, которая меньше текущей, даже если есть уроки новее текущей даты. А мне нужно, чтобы максимальная дата урока была меньше текущей даты и была последним уроком в базе для каждого студента.
...
Рейтинг: 0 / 0
Помогите с запросом
    #39441028
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот теперь - постановку задачи полностью и с нуля. Потому как сейчас два куска. и один хрен не понять, что нужно.
...
Рейтинг: 0 / 0
Помогите с запросом
    #39441029
savsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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;

Но мне нужно выбрать только те уроки, где максимальная дата меньше текущей, то есть новее уроков нет.
...
Рейтинг: 0 / 0
Помогите с запросом
    #39441196
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вас просили только постановку задачи, а не Ваши мысли о том, как её решать, и уж тем более не тексты запросов, делающих не то, что нужно.

Ладно, попробую сам.
Необходимо выбрать сведения о студенте и последнем его уроке, причём только те, где дата этого последнего урока не превышает некую заданную дату (например, "дата меньше сегодня на 3 дня").
Если постановка задачи верна, то решение ищется в FAQ: Выборка первой/последней записи в группах .
...
Рейтинг: 0 / 0
Помогите с запросом
    #39441390
savsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaЕсли постановка задачи верна, то решение ищется в FAQ: Выборка первой/последней записи в группах .

Спасибо
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]