| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > Проблема со структурой БД? |
| Автор: Zahard 26.5.2013, 05:57 |
Здравствуйте, есть БД с такой схемой:![]() Это БД общежития. decree - приказы relocation - приказы, касающиеся перемещения студентов между комнатами (заселение/выселение и т.д.) decree_type - тип приказа (Заселение/выселение/переселение и т.д.) Между decree и relocation связь 1:1, между room и relocation, например, 1:М. Сейчас таблица decree выглядит так: ![]() Для 5-го студента только 2 приказа типа relocation (1 заселение и 1 переселение) Когда делаю запрос на список студентов, которых заселили, то вижу такое: ![]() У 5-го студента в выборку попадают обе записи, хотя вторая касается перевода, а не заселения. Если сделать запрос на переселения, то картина аналогичная: ![]() В чем дело может кто объяснить? |
| Автор: password 27.5.2013, 11:33 |
| Добрый день. Вы не правильно связываете relocation. Вы связываете по студенту, а нужно по приказу. У вас в relocation 2 записи, вот по студенту и выбирается 2 записи. Добавьте еще id приказа ... Join relocation r on r.decree_id=d.decree_id and r.student_id=p.student_id ... вроде так. |
| Автор: Zahard 27.5.2013, 15:15 |
| password, Вы оказались правы) Спасибо. |