Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
SELECT e1.equip_id, e1.equip_name
FROM ((SELECT equipment.equip_id, equipment.equip_name
FROM (((equipment INNER JOIN
equip_for_eq_deliv ON equipment.equip_id = equip_for_eq_deliv.efs_equip_id) INNER JOIN
eq_deliv ON equip_for_eq_deliv.efs_eq_deliv_id = eq_deliv.eq_deliv_id) INNER JOIN
students ON eq_deliv.eq_deliv_stud_id = students.stud_id)
WHERE (eq_deliv.eq_deliv_operation = 0) AND (students.stud_id = 1)) e1 INNER JOIN
(SELECT equipment_1.equip_id, equipment_1.equip_name
FROM (((equipment equipment_1 INNER JOIN
equip_for_eq_deliv equip_for_eq_deliv_1 ON equipment_1.equip_id = equip_for_eq_deliv_1.efs_equip_id) INNER JOIN
eq_deliv eq_deliv_1 ON equip_for_eq_deliv_1.efs_eq_deliv_id = eq_deliv_1.eq_deliv_id) INNER JOIN
students students_1 ON eq_deliv_1.eq_deliv_stud_id = students_1.stud_id)
WHERE (eq_deliv_1.eq_deliv_operation = 1) AND (students_1.stud_id = 1)) e2
WHERE (e1.equip_id = e2.equip_id)
хорошо что это всего лишь курсач(на тему автоматизация процеса выдачи оборудования студентам на лабы)
суть сего бреда такова: в таблице выдача оборудования есть поле операция (eq_deliv_operation) которое принимает значения:
0 - выдача оборудования ситуденту
1 - возвращение оборудования студентом.
собсно тут выберается оборудование которе студент еще не сдал обратно..
вот такая вот говняшка.. вобщем очень и очень, говняный из меня проектировщик бд. пойду я лучше верстать веб страницы
Таблица "Студент" с идентификатором - автоинкрементом
Таблица "Оборудование" с идентификатором - автоинкрементом
Таблица "Оборудование в использовании", ссылается на идентификатор студента, на идентификатор оборудования + 2 поля с датами (выдача, возврат).
Какое оборудование еще не сдано вычисляется элементарным запросом.
Переделайте структуру в человеческую, не мучайте студентов...
Кто его учил так называть поля в таблицах? Я участвовал в проектах с пол-сотней таблиц и как-то обходились без названий полей, состоящих из 4 слов и всё было читабельно. А тут все поля такие. Да ещё и куча сокращений. В смысл кода даже не пытался вникнуть
Прорекаю плохо построенную схему.
видит equip deliv в deliv
сунул deliv equip deliv
equip deliv equip deliv
Таблица "Оборудование" с идентификатором - автоинкрементом
Таблица "Оборудование в использовании", ссылается на идентификатор студента, на идентификатор оборудования + 2 поля с датами (выдача, возврат).
Какое оборудование еще не сдано вычисляется элементарным запросом.
Переделайте структуру в человеческую, не мучайте студентов...