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