в postgresql, как я могу объединить 4 таблицы, где первое объединение имеет ограничение? - PullRequest
0 голосов
/ 11 октября 2018

Я хочу объединить 4 таблицы, но с первой таблицей есть ограничение.Это соединение без ограничения, которое работает нормально:

    SELECT room_number, rent_rate, leases.place_number, students.id, 
           students.first_name, students.last_name
      FROM rooms
INNER JOIN hall_rooms ON rooms.place_number = hall_rooms.place_number 
INNER JOIN leases ON leases.place_number = rooms.place_number
INNER JOIN students ON students.id = leases.place_number;

Но я хочу поместить ограничение "где hall_rooms.hall_id = 1" в первом предложении соединения.возможно ли это?

Я пытался поместить его непосредственно после первого класса соединения / перед вторым внутренним соединением, но это не работает.

edit: я не хочу включать столбец hall_rooms.hall_id в итоговую таблицу, я просто хочу, чтобы ограничение было истинным.

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете добавить его к условию соединения с помощью логического оператора and:

    SELECT room_number, rent_rate, leases.place_number, students.id, 
            students.first_name, students.last_name
      FROM rooms
INNER JOIN hall_rooms ON rooms.place_number = hall_rooms.place_number 
INNER JOIN leases ON (
                       leases.place_number = rooms.place_number AND 
                       hall_rooms.hall_id = 1 -- here!
                     ) 
INNER JOIN students ON students.id = leases.place_number;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...