【问题标题】:MySQL/PHP - query multiple tables to see if records match number in arrayMySQL/PHP - 查询多个表以查看记录是否与数组中的数字匹配
【发布时间】:2011-04-21 05:22:18
【问题描述】:

我有一个带有复选框的表单,当提交表单时,我将其作为数组抓取:

<input name='price[]' type='checkbox' value='1'/>
<input name='price[]' type='checkbox' value='2'/>
<input name='price[]' type='checkbox' value='3'/>
<input name='price[]' type='checkbox' value='4'/>

然后我抓取数组中的值并像这样查询数据库:

$priceArray = $_POST['price'];
$selectPrice = join(',',$priceArray);

"SELECT DISTINCT community FROM community_prices WHERE prices IN ($selectPrice)"

这很好用,但我需要用 3 个额外的数组和 3 个额外的表来做同样的事情,而且我想通过同一个查询来做这一切。

例如:

表 1 community_prices 有以下字段:id,community,prices

表 2 community_amenities 有以下字段:id,community,amenities

表 3 community_demographic 有以下字段:id,community,demographic

表 4 community_products 有以下字段:id,community,product

对我如何做到这一点有什么想法吗?

【问题讨论】:

    标签: php mysql arrays join


    【解决方案1】:

    UNION 可能是你的朋友。

    【讨论】:

      【解决方案2】:

      使用JOIN从多个表中选择,例如

      SELECT "YOUR FIELDS" FROM table1 
          JOIN table2 ON  table2.prices IN ($selectPrice)
          JOIN table3 ON  table3.community = table1.comumnity
          JOIN table4 ON  table4.community = table3.comumnity
      GROUP BY "YOUR FIELD"
      ORDER BY "YOUR FIELD"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-19
        相关资源
        最近更新 更多