我有这两张表:
+----------------------------------------+
| orders |
+----+----------+------------+-----------+
| id | customer | datetime | more_info |
+----+----------+------------+-----------+
| 19 | 373 | 1727608300 | nada |
| 20 | 358 | 1727706300 | something |
+----+----------+------------+-----------+
+-------------------------------------+
| orderlines |
+----+----------+------------+--------+
| id | order_id | article_id | amount |
+----+----------+------------+--------+
| 3 | 19 | 22 | 1 |
| 4 | 19 | 28 | 2 |
| 5 | 19 | 42 | 1 |
| 6 | 20 | 22 | 2 |
| 7 | 20 | 69 | 1 |
+----+----------+------------+--------+
我想对 MySQL 进行查询,得到这个结果:
+--------------------------+
| result |
+----+----------+----------+
| id | customer | articles |
+----+----------+----------+
| 19 | 373 | 22,28,42 |
| 20 | 358 | 22,69 |
+----+----------+----------+
当我搜索解决方案时,我得到的结果比我需要的或 MS SQL (STRING_AGG) 更广泛,也许我在搜索中没有使用正确的关键字。
有人可以帮助我吗?
根据 id 连接两个表并使用 STRING_AGG 获取文章列
SELECT o.id,
o.customer,
STRING_AGG(ol.article_id,',') as articles
FROM orders o
INNER JOIN orderlines oi on oi.id=o.id