Мне нужно выполнить соединение с базой данных, где, к сожалению, структура базы данных не в первой нормальной форме.Я не могу изменить структуру / макет таблицы, потому что это сгенерированное приложением приложение, и я могу создавать запросы только для чтения, чтобы получать данные для моего собственного компонента статистики.
Схема выглядит следующим образом.Существует таблица services
, которая состоит из нескольких атрибутов, где особенно важен атрибут property
.Ниже приведены примеры строк таблицы report
:
table: report
id | vehicles | ...
-------------------
1 | 1,2,3 | ...
2 | 2,3 | ...
3 | 2 | ...
Таблицы vehicle
выглядят следующим образом:
table: vehicle
vid | description
---------------
1 | Vehicle A
2 | Vehicle B
3 | Vehicle C
Моя цель состоит в том, чтобы подсчитать частоту, с которой транспортное средство участвовалоотчета.Желаемые строки результата:
desired result
description | count(*)
----------------------
Vehicle A | 1
Vehicle B | 3
Vehicle C | 2
Псевдопросмотр для этого будет выглядеть примерно так:
SELECT v.description, Count(*)
FROM report r
JOIN vehicles v
ON v.vid IN(r.vehicles)
GROUP BY v.description;
Есть ли способ MySQL для обработки этого на стороне базы данных?Или я должен выбрать все, взорвать транспортные средства при входе в приложение и выполнить «соединение» вне базы данных?
Я бы предпочел сделать это на стороне базы данных.Я могу только читать обе таблицы, но могу создавать представления, если это необходимо (чего я также хочу избежать, если это возможно).