programing

연결된 테이블에서 아이들의 총 레코드를 가져옵니다.

shortcode 2022. 9. 29. 23:58
반응형

연결된 테이블에서 아이들의 총 레코드를 가져옵니다.

MariaDB 5.5를 사용하고 있지만 이 솔루션은 MySQL과 동일합니다.테이블이 두 개 있는데, 첫 번째 테이블에는 갤러리가 포함되어 있고 두 번째 테이블에는 각 갤러리 내의 파일에 대한 정보가 포함되어 있습니다.이것은 표의 예시입니다.gallery:

+----+-------+-----+
| id | name  | ... |
+----+-------+-----+
| 1  | test1 | ... |
| 2  | test2 | ... |
| 3  | test3 | ... |
| 4  | test4 | ... |
+----+-------+-----+

이것은 표의 예시입니다.gallery_items:

+----+------+------------+-----+
| id | file | gallery_id | ... |
+----+------+------------+-----+
| 1  | img1 | 3          | ... |
| 2  | img2 | 2          | ... |
| 3  | img3 | 2          | ... |
| 4  | img4 | 1          | ... |
+----+------+------------+-----+

그래서 나는 이 코드를 시도했다.

SELECT gallery.*, COUNT(gallery_items.id) AS items FROM gallery JOIN gallery_items WHERE gallery_items.gallery_id = gallery.id;

음, 저는 데이터베이스를 잘 다루지 못하기 때문에 도움을 청하는 거예요.예상한 결과는 다음과 같습니다.

+----+-------+-------+-----+
| id | name  | items | ... |
+----+-------+-------+-----+
| 1  | test1 | 1     | ... |
| 2  | test2 | 2     | ... |
| 3  | test3 | 1     | ... |
| 4  | test4 | 0     | ... |
+----+-------+-------+-----+

할 필요가 있다GROUP BY을 위해COUNT일하기 위해

SELECT gallery.*, COUNT(gallery_items.id) AS items FROM gallery 
LEFT JOIN gallery_items ON gallery_items.gallery_id = gallery.id
GROUP BY gallery.id, gallery.name

설명 다음 쿼리를 사용할 수 있습니다.

SELECT
  g.*,COUNT(gi.id) AS items
FROM
  gallery g
LEFT JOIN gallery_items gi
ON g.id = gi.gallery_id
GROUP BY g.id;

언급URL : https://stackoverflow.com/questions/39826009/get-total-records-of-children-from-connected-table

반응형