MySQL динамический AS или способ сделать это [дублировать]

Мне было очень полезно понять, что конструктор копирования вызывается при назначении следующим образом:

class Base { };    
class Derived : public Base { };

Derived x; /* Derived type object created */ 
Base y = x; /* Copy is made (using Base's copy constructor), so y really is of type Base. Copy can cause "slicing" btw. */ 

Так как y является фактическим объектом класса Base, а не оригинальным, функции, вызываемые это функции базы.

0
задан Bill Karwin 22 February 2018 в 01:35
поделиться

1 ответ

Список выбора SQL должен быть исправлен во время написания запроса. Вы не можете сделать SQL, который автоматически расширяет свои столбцы на основе найденных данных.

Но ваш запрос является общим, он называется сводной таблицей или таблицей кросс-таблицы.

Единственное решение состоит в том, чтобы сделать это несколькими этапами:

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

Это справедливо для всех баз данных SQL, а не только для MySQL.

См. MySQL pivot row в динамическое число столбцов для высокопринятого решения для создания запроса сводной таблицы в MySQL.

Я не голосую ваш вопрос как дубликат этого вопроса, потому что ваш запрос также включает transport_id, что сделает решение для запросов немного другим. Но вы должны прочитать о других решениях с поворотным столом.

1
ответ дан Bill Karwin 17 August 2018 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: