我想加入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;

但我想在第一个join子句中加入约束“where hall_rooms.hall_id=1”。有可能吗?
我试图将它直接放在第一个连接类之后/第二个内部连接之前,但它不起作用。
编辑:我不想在结果表中包含列hall_rooms.hall_id,我只希望约束为true。

最佳答案

您可以使用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;

关于postgresql - 在postgresql中,我如何联接第一个联接有约束的4个表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52767907/

10-13 00:47