Есть таблица 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 одним запросом?