我正在使用MariaDB 5.5,但对于这个解决方案,它将与MySQL相同.我有两个表,第一个包含画廊,第二个包含有关每个库中文件的信息.这是表的示例gallery:
+----+-------+-----+
| id | name | ... |
+----+-------+-----+
| 1 | test1 | ... |
| 2 | test2 | ... |
| 3 | test3 | ... |
| 4 | test4 | ... |
+----+-------+-----+
Run Code Online (Sandbox Code Playgroud)
这是表的示例gallery_items:
+----+------+------------+-----+
| id | file | gallery_id | ... |
+----+------+------------+-----+
| 1 | img1 | 3 | ... |
| 2 | img2 | 2 | ... |
| 3 | img3 | 2 | ... |
| 4 | img4 | 1 | ... |
+----+------+------------+-----+
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这段代码:
SELECT gallery.*, COUNT(gallery_items.id) AS items FROM gallery JOIN gallery_items WHERE gallery_items.gallery_id = gallery.id;
Run Code Online (Sandbox Code Playgroud)
好吧,我对数据库不太满意,所以这就是我寻求帮助的原因.这是我的预期结果:
+----+-------+-------+-----+
| id | name | items | ... |
+----+-------+-------+-----+
| 1 | test1 | 1 | ... |
| 2 | test2 | 2 | ... |
| 3 | test3 | 1 | ... |
| 4 | test4 | 0 | ... |
+----+-------+-------+-----+
Run Code Online (Sandbox Code Playgroud)
你需要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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |