Транспортный стол
id name
1 T1
2 T2
Стол для поддонов
id name
1 P1
2 P2
Таблица грузоподъемности поддонов
id transport_id pallet_id capacity
1 1 1 10
2 1 2 null
3 2 1 20
4 2 2 24
Как создать таблицу следующим образом:
id transport_id pallet_id_1_capacity pallet_id_2_capacity
1 1 10 null
2 2 20 24
Проблема: можно добавить поддоны и транспорты, поэтому ни одно количество не известно заранее. Например, менеджер добавляет другой тип поддона и должен генерироваться столбец "pallet_id_3_capacity" (и может показывать значение null, если данные о емкости пока недоступны). Другой менеджер может заполнить таблицу "емкость транспортной поддоны" позже, когда будет уведомлен.
Есть ли способ построить sql в mysql, который будет заботиться об этом: в частности - динамическое количество поддонов?
Список выбора SQL должен быть исправлен во время написания запроса. Вы не можете сделать SQL, который автоматически расширяет свои столбцы на основе найденных данных.
Но ваш запрос является общим, он называется сводной таблицей или таблицей кросс-таблицы.
Единственное решение - сделать это несколькими шагами:
Это справедливо для всех баз данных SQL, а не только для MySQL.
См. MySQL pivot row в динамическое число столбцов для высокопринятого решения для создания запроса сводной таблицы в MySQL.
Я не голосую ваш вопрос как дубликат этого вопроса, потому что ваш запрос также включает в себя транспортный_ид, который сделает решение для запросов немного другим. Но чтение о других решениях с поворотным столом должно начать вас.