Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > выборка из 2-х таблиц.. с двумя ссылками


Автор: gringlin 31.3.2005, 09:44
пытаюсь сделать выборку... но.. никак ни получается ((

структура следующая:

есть таблица "предметы", в которой есть поля "id_lector" и "id_seminarist", ссылающуюся на одну таблицу "преподаватели" (а точнее на ее поле "id") и поле "semestr"...

т.е. есть список предметов и список преподавателий..

и нужно вывести список преподавателей конкретного семестра, в котором нужно указать - кем он являлся .. лектором или семинаристом.

пытался сделать вот это:

Код

WHERE subjects.id_lector=teachers.id
and subjects.id_seminarist=teachers.id


//... но я был "послан" smile

.. причем, возможны случаи, когда id_seminarist = NULL , т.е. по данному предмету только лекции.

Автор: Mal Hack 31.3.2005, 10:16
Структуру таблиц покажи полностью и что с чем связать надо.

Автор: gringlin 31.3.2005, 10:47
Subjects ( id, kurs, semestr, predmet, id_lector, id_seminarist, ...)
Teachers (id, zvanie, surname, name, sec_name, ... )

Код

SELECT subjects.id, subjects.semestr, subjects.kurs, subjects.predmet, subjects.id_seminarist, subjects.id_lector,
teachers.zvanie, teachers.surname, teachers.name, teachers.sec_name
FROM subjects, teachers
WHERE 
subjects.id_lector=teachers.id
and subjects.id_seminarist=teachers.id
and subjects.semestr=$sem


.. в общем, есть предметы, по которым либо только лекции (в subjects прописан только лектор, а id_seminarist=NULL), либо лекции с семинарами (тогда уже два преподавателя). Преподаватели помещены в отдельную таблицу, т.к. одни и те же преподаватели могут вести разные предметы (только уже на друих семестрах)

.. это я написал примерный запрос.. а надо получить записи на подобии следующей:

subjects.id, subjects.semestr, subjects.kurs, subjects.predmet, subjects.id_seminarist, subjects.id_lector, teachers.zvanie, teachers.surname, teachers.name, teachers.sec_name, teachers2.zvanie, teachers2.surname, teachers2.name, teachers2.sec_name

//... т.е. если id_seminarist != NULL надо вывести и лектора и семинариста.

конечная циль -
просто получить список преподавателей n-го семестра с указанием кто лектор, а кто семинарист.
и, желательно конечно, их отсортировать по фамилии.

///// я понимаю, конечно, что вышеописанный запрос это "сама тупость".... smile
но, вопрос в том, как бы так сделать................. smile

Автор: Kesh 31.3.2005, 18:22
Код
SELECT subjects.id, subjects.semestr, subjects.kurs, subjects.predmet, subjects.id_seminarist, subjects.id_lector,
teachers.zvanie, teachers.surname, teachers.name, teachers.sec_name
FROM 
subjects, teachers
WHERE 
((subjects.id_lector=teachers.id)
or 
(subjects.id_seminarist=teachers.id))
and 
(subjects.semestr=$sem)

Попробуй так...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)