这是两个表:
一个:
+-----+------------------------+
| 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来做,那将是甜蜜的。
答案 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?。