如何将其他表中的选择分组为sql中的一列?

时间:2017-08-17 21:55:11

标签: mysql sqlalchemy flask-sqlalchemy

这是两个表:

一个:

+-----+------------------------+
| id  | conten                 | 
+-----+------------------------+
| 1   | q.                     |
| 2   | q.                     |
| 3   | s.                     |
| 4   | g                      |
| 1   | a                      |
| 2   | a                      |
+-----+------------------------+

B:

+-----+------------------------+
| id  | type                   | 
+-----+------------------------+
| 1   | I.                     |
| 2   | II.                    |
| 3   | III.                   |
| 4   | IV                     |
| 5   | V                      |
| 6   | VI                     |
+-----+------------------------+

有没有办法从a和b中进行选择,以便对于一个ID 2,会有一个额外的字段对该ID中的所有内容进行分组?选择结果应该是这样的:

+-----+------------------------+-----------+
| id  | type                   | contents  |
+-----+------------------------+-----------+
| 2   |I.                      | q,a       |
+-----+------------------------+-----------+

被修改 顺便说一句,如果有一种方法可以通过sqlahcmey来做,那将是甜蜜的。

1 个答案:

答案 0 :(得分:1)

SELECT b.id, b.type, IFNULL(GROUP_CONCAT(a.conten), '') AS contents
FROM b
LEFT JOIN a ON a.id = b.id
GROUP BY b.id

有关如何将GROUP_CONCAT翻译为SQLAlchemy的信息,请参阅How do I write a group_concat function in sqlalchemy?