【发布时间】:2020-01-23 11:29:24
【问题描述】:
我有一张表,我想为每个 id 拉一行,并连接字段值。
例如,在我的表中,我有这个:
SELECT objects.id, objects.title, categories.name,
(SELECT COUNT(0) FROM comments WHERE comments.object_id = objects.id) as count
FROM objects
LEFT JOIN restaurant_properties ON restaurant_properties.object_id = objects.id
LEFT JOIN categories on categories.id = restaurant_properties.category_id
WHERE type_id = 2
id | title | category_name | count |
12 | Tosca | Cafe | 0 |
12 | Tosca | Bar | 0 |
12 | Tosca | Pizza | 0 |
11 | Green Cafe | Cafe | 0 |
11 | Green Cafe | Tea House | 0 |
我想输出:
id | title | category_name | count |
12 | Tosca | Cafe, Bar, Pizza | 0 |
11 | Green Cafe | Cafe, Tea House | 0 |
当我使用 GROUP BY "name" 时,它给了我一个错误:
[Err] 错误:“objects.id”列必须出现在 GROUP BY 子句中或在聚合函数中使用
【问题讨论】:
-
您想要 MySQL 或 Postgres 的解决方案吗?
-
您通常
GROUP BY与您SELECT相同的列,但作为聚合函数参数的列除外。
标签: mysql sql postgresql