Mysql子查询,类别及其项目

时间:2013-12-01 12:57:04

标签: php mysql subquery

有人能帮助我,还是指向正确的方向? 我正在尝试查询所有catergories,然后在一个查询中查询其项目,以便我可以像这样遍历数据。

foreach($categories as $category){
    echo $category->name;
    foreach($category->items as $item){
        echo $item->name;
    }
} 

我只需要看一个例子,我会得到它, 提前谢谢。

1 个答案:

答案 0 :(得分:0)

假设有两个表,categoryitem。 1个类别有零个或多个项目。 (你正在使用2个深度循环)

  • category(c_id,c_name)
  • item(i_id,c_id,i_name)
那么你可以这样做:

SELECT c.c_name, i.i_name
FROM category c LEFT JOIN item i USING(c_id)

当类别和项目具有多对多关系时,您有三个表格,

  • category(c_id,c_name)
  • item(i_id,i_name)
  • category_item(c_id,i_id)
你可以这样的。 (在这种情况下,您的PHP代码应该看起来像3深度循环)

SELECT c.c_name, i.i_name
FROM category c LEFT JOIN category_item ci USING(c_id)
  INNER JOIN item i USING(i_id)