我有3个MYSQL表。
“villa”表有属性记录。 “villa_type”表包含属性类型的记录。 “villa_price”表格,包含日期,价格,房产ID和可用性栏目的每日价格。
我使用SQL接收所有数据,请将其与villa_type表连接以接收有关属性正常工作的其他信息,然后将表格与第3个表连接,以询问该属性是在该日期预订还是可用。 / p>
查询是这样的。
SELECT villa.*, villa_type.tip as villatypename
FROM villa
LEFT JOIN villa_type on villa_type.id = villa.type
LEFT JOIN villa_price on villa_price.villaid = villa.id
WHERE villa.lang = 1
AND villa.area = 1980
AND villa.status = 1
AND villa.status2 = 1
-- Problem starts here..............
AND (villa_price.vdate = '2015-01-13' OR villa_price.vdate is null)
AND (
((villa_price.condition != 2) AND (villa_price.condition != 3))
OR (villa_price.condition is null)
)
问题是:如果别墅有2015-01-13的记录且条件是2或3,我正确地没有列出那个别墅(这是我正在尝试做的),但是如果那个别墅有相同日期的记录,条件是1,它仍然没有列出(虽然它应该)。
我只想查看villa_price表,看看该别墅在给定日期的条件为2或3,并从结果中删除该别墅。
任何帮助或指南将不胜感激。非常感谢