0
我可以得到一些帮助来清理以下查询并可能将其转换为连接。将查询转换为加入
SELECT pd.id, pd.title, pd.vacation_type_ids, pd.auto_vacation_theme
FROM property_details pd
WHERE pd.company_id =247
AND pd.status = "active"
AND pd.id NOT
IN (
SELECT d.property_id
FROM property_discount d
WHERE (
(
d.start_date <= CAST( "2012-04-15" AS DATE)
AND d.end_date >= CAST( "2012-04-15" AS DATE)
AND d.start_date <= CAST( "2012-04-17" AS DATE)
AND d.end_date >= CAST( "2012-04-17" AS DATE)
)
OR (
d.start_date >= CAST( "2012-04-15" AS DATE)
AND d.start_date <= CAST( "2012-04-17" AS DATE)
)
OR (
d.end_date >= CAST( "2012-04-15" AS DATE)
AND d.end_date <= CAST( "2012-04-17" AS DATE)
)
)
)
我没有与MySQL的专家很抱歉,如果我已经做错了什么
正如tombom解释的那样,您的WHERE子句是一团糟。这个怎么样。而不是你不想要的东西,你试图在折扣中找到什么被排除在外。看起来,你希望任何发现STARTED至少为4/15的工作,并且是在4/17或之前完成的。如果是这样,这些是您想要从结果中“忽略”的属性。这是否准确? – DRapp 2012-04-13 13:28:25