【发布时间】:2016-07-02 13:06:37
【问题描述】:
我有一个动物园。
动物园桌
id | name |
动物桌
id | zoo_id | name | type
1 1 Horse 0
2 1 Elephant 0
3 1 Parrot 1
4 2 Whale 2
5 2 Fox 0
6 1 Snake 3
我想选择所有动物园数据以及该动物园的动物总数和该动物园中存在的所有动物类型
MySQL
SELECT zoo.id as zooid,zoo.name,
(SELECT COUNT(*) FROM animal WHERE animal.zoo_id = zoo.id) as total_animals
FROM zoo;
但是我如何才能获得该动物园中存在的所有动物类型
预期结果
zooid | name | total | available_types
1 USAZOO 4 0 1 3
2 UKZOO 2 0 2
由于我要选择很多 Zoo,因此 性能很重要
【问题讨论】:
-
加入。使用 GROUP BY。
-
请详细说明@jarlh
-
第 1 步)与动物一起加入动物园。第 2 步)做一个 GROUP BY。
-
你们 cmets 让我发笑:) 但我认为他需要 group_concat 所以这不是他要找的@jarlh
-
group_concat 包含在第 2 步中!
标签: mysql sql performance select group-by