我想联接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;
但是我想在第一个连接子句中添加约束“ where hall_rooms.hall_id = 1”。有可能吗?
我尝试将其直接放在第一个连接类之后/第二个内部连接之前,但是它不起作用。
edit:我不想在结果表中包括hall_rooms.hall_id列,我只是希望约束为真。
答案 0 :(得分:0)
您可以使用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;