Как получить данные из 3-х таблиц?

211
31 января 2020, 04:40

База данных MariaDB 10.2. Есть три таблицы (3-я связующая):

------------------
| id | tool_name |
------------------
| 1  | bolt      |
------------------
| 2  | gayka     |
------------------
| 3  | samarez   |
------------------
| 4  | graver    |
------------------
...
------------------
| id | prop_name |
------------------
| 1  | stal      |
------------------
| 2  | stal1     |
------------------
| 3  | bronza    |
------------------
| 4  | bronza1   |
------------------
...
--------------------------------------------
| id | tool_name_id | prop_name_id | value |
--------------------------------------------
| 1  |       1      |      1       |   110 |
--------------------------------------------
| 1  |       1      |      2       |   12  |
--------------------------------------------
| 1  |       1      |      3       |   13  |
--------------------------------------------
| 1  |       2      |      4       |   1   |
--------------------------------------------
| 1  |       3      |      3       |   11  |
--------------------------------------------
| 1  |       2      |      3       |   12  |
--------------------------------------------

Не могу написать такой запрос, чтобы вытащил все инструменты со всеми характеристиками (таблица 2), чтобы потом записать в массив вида:

id (параметра) => {
  id ( инструмента) : value,
  ...
  id (инструмента) : value
}
...
id (параметра) => {
  id (инструмента) : value,
  ...
  id (инструмента) : value
}

Т.е. выбраны ВСЕ параметры и к ним инструменты со значением.

Всё, что я смог налаять:

select TP.id, TP.name, TP.description,
       GROUP_CONCAT(concat("{\"value\": ", FTP.value, ", \"line\": " , F.id, "}") separator ";") as json_lines_value 
from `tech_props` as `TP` 
inner join `flow_tech_props` as `FTP` on `FTP`.`tech_prop_id` = `TP`.`id` 
inner join `flows` as `F` on `F`.`id` = `FTP`.`flow_id` 
group by `TP`.`id` 
order by `TP`.`id` asc

Результат:

1   min_height  Минимальная высота стеклопакета {"value": 12, "line": 43};{"value": 12, "line": 46}
3   max_height  Максимальная высота стеклопакета    {"value": 321, "line": 44}
7   argon       Возможность заполнения аргоном  {"value": 11, "line": 44};{"value": 0, "line": 70};{"value": 12, "line": 43}
READ ALSO
Помогите изменить форму плагина

Помогите изменить форму плагина

Кто нибудь работал с vue2-datapicker? Не получается придать ему форму как на скриншоте ниже

206
что сделать с nav чтобы оно не двигалось при hover?

что сделать с nav чтобы оно не двигалось при hover?

Здесь ссылка на кодпен, ячейки меню двигаются вниз при наведениии курсораКак сделать так, чтобы они оставались на месте ? Я добавил max-height,...

183
Jquery найти первые 3 слова и изменить стили

Jquery найти первые 3 слова и изменить стили

Есть много строк с примерно следующим содержанием:

195
Подсветка строк с одинаковыми данными в WPF DataGrid

Подсветка строк с одинаковыми данными в WPF DataGrid

На форме есть таблица с данными, выбиратель цвета, кнопка

199