使用 MySQL 按外国 table 的可用性查找属性
Find properties by availability in foreign table using MySQL
下面是我的tables
properties bookings
========== ==========
property_id booking_id
price property_id
city checkin_date
checkout_date
我有两个 table,一个是出租网站的 Properties 和 Bookings。我想按入住日期、退房日期、价格和位置进行搜索。它将通过 property_id FK 检查外国 table 预订的可用性。
基本上我希望它是这样的:
SELECT property_id,price,city FROM properties
WHERE
price > 200,
city = "Toronto",
LEFT JOIN (
SELECT postid, COUNT( * ) AS total
FROM bookings
WHERE checkin_date *** SOMEHTING HERE ****
我确定上面的内容已经不正确了。我是用左连接还是内连接。
SELECT DISTINCT p.property_id, p.price, p.city
FROM properties AS p
LEFT JOIN bookins AS b ON p.property_id = b.property_id
WHERE p.price > 200
AND p.city = 'Toronto'
AND (b.checkin_date >= '?' OR b.checkout_date <= '?')
替换?与您的搜索日期
下面是我的tables
properties bookings
========== ==========
property_id booking_id
price property_id
city checkin_date
checkout_date
我有两个 table,一个是出租网站的 Properties 和 Bookings。我想按入住日期、退房日期、价格和位置进行搜索。它将通过 property_id FK 检查外国 table 预订的可用性。
基本上我希望它是这样的:
SELECT property_id,price,city FROM properties
WHERE
price > 200,
city = "Toronto",
LEFT JOIN (
SELECT postid, COUNT( * ) AS total
FROM bookings
WHERE checkin_date *** SOMEHTING HERE ****
我确定上面的内容已经不正确了。我是用左连接还是内连接。
SELECT DISTINCT p.property_id, p.price, p.city
FROM properties AS p
LEFT JOIN bookins AS b ON p.property_id = b.property_id
WHERE p.price > 200
AND p.city = 'Toronto'
AND (b.checkin_date >= '?' OR b.checkout_date <= '?')
替换?与您的搜索日期