【发布时间】:2009-06-24 19:02:56
【问题描述】:
我的 SQL 似乎没有限制基于 price 的结果。
在我之前的帖子 SQL: Help me optimize my SQL 中,人们表示我应该使用 LEFT OUTER JOIN。
SELECT homes.home_id,
address,
city,
state,
zip,
price,
photo_id,
photo_url_dir
FROM homes
LEFT OUTER JOIN home_photos ON homes.home_id = home_photos.home_id
AND primary_photo_group_id = home_photo_group_id
AND home_photo_type_id =2
AND display_status = true
AND homes.price BETWEEN 500000 AND 1000000
但是,它仍然显示价格为 的房屋
我不明白。当我有一个 WHERE 条件来精确限制该字段时,为什么上面的 SQL 会显示价格低于 500000 的房屋。
感谢您的帮助。
我想做什么
我想根据 X 和 Y 之间的PRICE 或SQFT > Z 等标准同时显示有和没有 home_photo 的房屋。但是这些标准需要同时应用于那些有和那些homes 没有 home_photo
这是正确的吗?
SELECT homes.home_id,
address,
city,
state,
zip,
price,
photo_id,
photo_url_dir
FROM homes
LEFT OUTER JOIN home_photos ON homes.home_id = home_photos.home_id
AND homes.primary_photo_group_id = home_photos.home_photo_group_id
AND home_photos.home_photo_type_id =2
WHERE homes.display_status = true
AND homes.price BETWEEN 500000 AND 1000000
【问题讨论】:
标签: sql database database-design query-optimization