1

私の 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

ただし、価格が 500000 未満の住宅は引き続き表示されます。

理解できない。正確にそのフィールドを制限する WHERE 条件があるのに、上記の SQL が価格が 500000 未満の住宅を表示するのはなぜですか。

ご協力いただきありがとうございます。

私がしたいこと

PRICEX と Y ... または> Z などの基準に基づいて、home_photo のある家とない家の両方を表示したいのですがSQFT、これらの基準は、ある家と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
4

4 に答える 4