0

我从事一个项目已经有一段时间了。现在我已经到了一个地步,我想不出一个 MySQL 查询会返回我按其父级分组的所有行。这是我拥有的表结构:

+----+-----------+------+
| id | parent_id | name |
+----+-----------+------+

parent_id 值有 8 个(1-8),每个 parent_id 有 20 个 id 值(共 160 个)。我检索所有类别并按 parent_id 分组的方式是这样的:

$categories = array();

for ($i = 1; $i <= 8; $i++) {
    $query = $this->db->query("
        SELECT id, name
        FROM categories
        WHERE parent_id = {$i}
        ORDER BY name
    ");
    $categories[$i] = $query->result();
}

return $categories;

有没有办法组合一个 MySQL 查询来为我做这件事?

这不起作用:

SELECT id, name
FROM categories
GROUP BY parent_id
ORDER BY name
4

1 回答 1

0

我认为您需要的是根据 parent_id 对结果集进行排序。如果您必须列出每个父母的每个 ID,则不需要 group by。

SELECT id, name
FROM categories
ORDER BY parent_id
于 2012-10-28T18:03:01.400 回答