Данные динамически изменяющейся сводной таблицы | mySQL - PullRequest
0 голосов
/ 12 июля 2020

По сути, у меня есть таблица в моей базе данных под названием Table1 со следующими данными:

enter image description here

The table has a ProductID that repeats because the values of AssignedColour, ColourFinding and ColourPower vary.

I would like to present all ProductID data in one single row, meaning if there is more than one AssignedColour, ColourFinding and ColourPower listed, it will contain a number at the end.

The final result I of the SELECT query should look like the following:

введите описание изображения здесь

Количество столбцов, представленных по горизонтали, основано на количестве AssignedColour на ProductID

Возможно ли что-то подобное? 1019 * в запросе mySQL SELECT?

1 Ответ

0 голосов
/ 12 июля 2020

Запрос SQL не может увеличить количество столбцов в наборе результатов в зависимости от значений данных, которые он обнаруживает во время выполнения запроса. Столбцы в списке SELECT должны быть зафиксированы на момент подготовки запроса, перед тем, как считывает любые данные.

Также имена столбцов не могут быть изменены во время выполнения запроса. Они должны быть установлены во время подготовки запроса.

Невозможно сделать то, что вы описываете, в одном запросе SQL. Возможны следующие варианты:

  • Выполните два запроса: один для перечисления цветов для каждого продукта, а затем используйте результат первого для форматирования второго запроса с нужными столбцами.
  • Сделайте один запрос, чтобы получить данные в строках в том виде, в каком они существуют в вашей таблице, затем напишите код в своем приложении, чтобы отображать их в строках, как вы думаете, лучше всего. хоть немного кода в клиенте. Вы не можете сделать это одним запросом.
...