MySQL搜索两个表的价格

时间:2012-09-20 18:23:46

标签: php mysql sql

我在编写查询时遇到问题,我有两张桌子。

  1. 属性表(属性)

    • id
    • PROPERTY_NAME
    • property_type
  2. 有两种类型的财产,商业或住宅。如果类型是住宅,价格是整个房产。但如果这种类型是商业的,每个单位都有不同的价格,如一楼,一楼,二楼,三楼。等等。所以我做了第二张桌子

    1. 物业价格表(price_for_commerical_prop) 其中包含以下字段

      • ID
      • PROPERTY_ID
      • floor_id
    2. 此表可能包含一个属性的多行,具体取决于该属性所具有的平面数。 floor_id包含底层的值0,一楼的值为1,依此类推。

      我的问题是。我有一个搜索字段来根据价格搜索属性。所以如果用户输入价格,我必须在第一张表和第二张表的价格字段中搜索价格。并根据搜索条件返回行。任何人都可以阐明如何做到这一点吗?

1 个答案:

答案 0 :(得分:0)

要搜索10到20的价格范围,您可以:

select  *
from    Property p
left join
        price_for_commerical_prop pfcp
on      p.id = pfcp.property_id
where   case 
        when p.property_type = 'residential' then p.price
        when p.property_type = 'commercial' then pfcp.price
        end between 10 and 20

case返回住宅Property的价格,以及price_for_commerical_prop的商业价格。