저는 꽤 오랫동안 프로젝트를 진행 해왔습니다. 이제는 부모가 그룹화 한 모든 행을 반환하는 MySQL 쿼리를 생각할 수없는 시점에 도달했습니다.여러 행을 선택하고 ID로 그룹화하십시오.
+----+-----------+------+
| id | parent_id | name |
+----+-----------+------+
8 개 PARENT_ID 값 (1-8) 및 각 PARENT_ID (160 계) 20 개 ID 값이있다 :이 I 가진 테이블 구조이다. 나는 모든 범주를 검색하고 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
예상되는 결과는 무엇입니까? –
왜'GROUP BY parent_id'가 작동하지 않을까요? 원하는 결과 세트가 정확히 무엇입니까? 귀하의 요구 사항이'부모가 그룹화 한 모든 행을 반환합니다. '는 parent_id의 GROUP BY가 수행하는 것입니다. – nawfal
위에 게시 한 쿼리는 모든 parent_id에 대해 하나의 카테고리 만 반환합니다. 예상되는 출력은 8 개의 값 (부모)의 배열입니다. 그것들 각각은 20 대 배열 (카테고리)의 부모가 될 것입니다. –