Обратный запрос

SBS Soft
Дата: 09.02.2013 09:17:40
ест две таблицы
students (id_stud, fam, ....)

poseshaemost (id, id_stud, date, ...)

первый таблице данные студентов, на втором вводится данные если студент не будет на уроке
кто когда не был на уроке определил
но, мне надо список студентов которые не пропустили уроков в определенный период
помогите, плз
qwerty112
Дата: 09.02.2013 10:39:17
SBS Soft
ест две таблицы
students (id_stud, fam, ....)

poseshaemost (id, id_stud, date, ...)

первый таблице данные студентов, на втором вводится данные если студент не будет на уроке
кто когда не был на уроке определил
но, мне надо список студентов которые не пропустили уроков в определенный период
помогите, плз

задача не решаемая, на озвученных данных

нужна таб."уроков"
зы
("урок" у студента - ржака !)
SBS Soft
Дата: 09.02.2013 10:55:28
qwerty112,
в системе есть блок там вводим если студент пропустил урок, дата, если есть причина - причину, какую занятию (предмет), ...
например, каждый ден 4 урока
какой то выход есть
это надо для отчета, определения типа хорошие студенты
qwerty112
Дата: 09.02.2013 11:06:58
SBS Soft,

оуу, стоп ! это я лоханулся
автор
первый таблице данные студентов, на втором вводится данные если студент не будет на уроке
кто когда не был на уроке определил
но, мне надо список студентов которые не пропустили уроков в определенный период

неправильно это прочитал
всего достаточно

студент не пропустил ни одного урока в заданные период, если его нет в таб.poseshaemost за этот период - всего-то

select s.*
from students s
where not exists (select 1 from poseshaemost p where s.id_stud=p.id_stud and p.date between mydate1 and mydate1)
romy4
Дата: 09.02.2013 14:00:51
qwerty112,

я бы делал это с left join и проверкой на null в подключаемой таблице. это быстрее, чем выполнять вложенный select на каждую строчку `students`
qwerty112
Дата: 09.02.2013 14:19:16
romy4
qwerty112,

я бы делал это с left join и проверкой на null в подключаемой таблице. это быстрее, чем выполнять вложенный select на каждую строчку `students`

в целом - я согласен, - обычно так и есть (left join - лучше)
---
напишите запрос, если не трудно
romy4
Дата: 09.02.2013 14:53:41
qwerty112,
SELECT s.*
FROM `studentds` AS s
LEFT JOIN `poseshaemost` p ON s.`id_stud`=p.`id_stud` AND p.`date` BETWEEN '<somedate>' AND '<somedate2>'
WHERE
p.`id_stud` IS NULL

типа такого