@KirSupi

Можно ли собрать данные одним запросом?

Есть таблица houses(number INT, persons JSON), в которой записаны связи "номер дома и люди, проживающие в доме" (да, имена людей хранится в JSON-списке)
Пример таблицы:
+--------+-------------------------+
| number | persons                 |
+--------+-------------------------+
| 1      | ["Коля", "Саша"]        |
+--------+-------------------------+
| 2      | ["Женя", "Оля", "Надя"] |
+--------+-------------------------+

Есть таблица books(person TEXT, book_title TEXT, date DATE), в ней записаны связи "человек, книга, которую он взял в библиотеке, дата"
Пример:
+--------+------------+------------+
| person | book_title | date       |
+--------+------------+------------+
| Гена   | Колобок    | 2022-06-01 |
+--------+------------+------------+
| Надя   | Репка      | 2022-06-02 |
+--------+------------+------------+

Есть json-объект (в программе он в виде строки) в котором house_number->[person, ...]
Пример:
{
  2: ["Женя", "Надя"],
  5: ["Таня", "Олег", "Петя"],
  6: ["Гена"]
}

Надо взять этот json-объект и по нему выбрать выбрать номер дома, имя человека и кол-во книг, которые он взял за определённый период, причём если в books человек не упоминается, то его всё равно надо вывести, а кол-во книг указать 0
Т.е. примерно так:
+--------------+--------+-------+
| house_number | person | count |
+--------------+--------+-------+
| 2            | Женя   | 0     |
+--------------+--------+-------+
| 2            | Надя   | 1     |
+--------------+--------+-------+
| 5            | Таня   | 0     |
+--------------+--------+-------+
| ...          | ...    | ...   |
+--------------+--------+-------+


Реально ли это сделать в MySQL 8.0 одним запросом?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы