Sqlalchemy много к одному ответу массива - PullRequest
0 голосов
/ 08 января 2020

Я работаю с SQLAlchemy и Flask. У меня есть таблица содержимого, например:

--------------------------------------------
|    id   |    title     |   description   |
--------------------------------------------
|    1    |    example   |   my content    |
|    2    | another piece| my other content|
--------------------------------------------

И таблица состояния, подобная этой:

--------------------------------------------------------
|   id   |   content_id  |     status type |    date   |
--------------------------------------------------------
|   1    |      1        |      written    |  1/5/2020 |
|   2    |      1        |      edited     |  1/7/2020 |
--------------------------------------------------------

Я хочу иметь возможность запрашивать БД и получать содержимое со всеми статусами в одной строке вместо того, чтобы иметь несколько строк повторяемого содержимого. Например, я хочу:

----------------------------------------------------------
| id  |   title    |   description    |      status's    |
----------------------------------------------------------
|  1  |    example |   my content     |     [1,2]        |
----------------------------------------------------------

Есть ли способ сделать это с помощью sqlalchemy?

1 Ответ

1 голос
/ 09 января 2020

Вы можете использовать этот запрос для получения вашего ответа:

 SELECT b.*,
        (SELECT GROUP_CONCAT (id) FROM status_table
         WHERE content_id = b.id) AS `status's`
         FROM status_table a JOIN content_table b 
         ON a.content_id = b.id 
 GROUP BY a.content_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...