mysql新手:sql选择问题

时间:2011-04-28 11:07:49

标签: php mysql

伙计们,美好的一天。我开始学习mysql,仍在摆弄。我刚看到一个像结构一样的表结构。当我在php中使用var_dump时,如何在sql中实现数组查询?更多力量!

Table: categories
id |  name  |
1  |  Cat A |
2  |  Cat B |

Table: sub_categories
id | category_id |   name      |
1  |     1       |  Sub Cat A  |
2  |     2       |  Sub Cat B  |

array
  'Cat A' => 
      array
        1 => string 'Sub Cat A' (length=9)
  'Cat B' => 
      array
        2 => string 'Sub Cat B' (length=9)

1 个答案:

答案 0 :(得分:2)

您必须遍历类别表,然后选择此类别中的所有行并填满您的数组。

您也可以像下面的示例中一样使用JOIN(如果您想要所有类别,请忽略where部分):

$result = mysql_query("SELECT categories.name as catname
    , categories.id as catid
    , sub_categories.id as subcatid
    , sub_categories.name as subcatname 
  FROM categories 
  LEFT JOIN sub_categories ON sub_categories.category_id = categories.id 
  WHERE categories.id = 1");

$rows = mysql_fetch_object($result);
$result = array();
foreach($rows as $row) {
  $result[$row->catname][] = array(
     'id' => $row->subcatid,
     'category_id' => $row->catid,
     'name' => $row->subcatname
  );
}

var_dump($result);

UNTESTED但应该有效。