【发布时间】:2023-04-06 20:26:01
【问题描述】:
我有一个结果集,格式为:
category name description author
ABC Lorem Ipsum Dolor
DEF Foo Bar Baz
我有第二个结果集,格式为:
category product
ABC Plane
DEF Car
ABC Boat
GHI Truck
我希望最终结果如下所示:
category name description author productlist
ABC Lorem Ipsum Dolor "Plane, Boat"
DEF Foo Bar Baz "Car"
我一直在尝试在第二个结果集上使用 GROUP_CONCAT 并将其按类别加入第一个结果集以获取列 productlist,但未能成功创建正确的查询。
这样的事情可能吗?
我正在使用 MariaDB。
性能不是主要问题,因为结果集往往很小。
这是我得到的最接近的,
SELECT `NAME`, `description`, `author`, `category`, ProductList
FROM (long query) q
LEFT JOIN (
SELECT GROUP_CONCAT(b.product ORDER BY b.product SEPARATOR ', ') AS
ProductList, ObjectCategory FROM SOME_TABLE a, SOME_OTHER_TABLE b
WHERE ObjectCategory = 'ABC' ORDER BY product
) q2
ON q.category = q2.ObjectCategory
但上述内容一次仅适用于一个硬编码类别(在上述情况下为“ABC”)。
【问题讨论】: