我构建了一个 SQL 查询来获取所有可供出租且未预订的特性
地址:
select property.address
from (period join booking on period.propertyid = booking.propertyid) join property on period.propertyid = property.id
where period.type = 'available'
AND period.end >= TO_DATE('2016-01-25', 'YYYY-MM-DD')
AND period.start <= TO_DATE('2016-01-20', 'YYYY-MM-DD')
AND (
booking.start > TO_DATE('2016-01-25', 'YYYY-MM-DD') OR
booking.start < TO_DATE('2016-01-20', 'YYYY-MM-DD')
)
AND (
booking.end > TO_DATE('2016-01-25', 'YYYY-MM-DD') OR
booking.end < TO_DATE('2016-01-20', 'YYYY-MM-DD')
);
但是,由于 period.propertyid = booking.propertyid 上的 period join booking,它不会查询
properties
(公寓)的 periods
booking
表中不存在。
如何加入 booking
表以便仍然查询所有 periods
?
最佳答案
使用LEFT JOIN
:
select property.address
from (
period
left join booking on period.propertyid = booking.propertyid)
...
关于mysql - 将表连接到另一个表后查询表的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35026450/