Хорошо, для примера у меня есть три таблицы:
**Table A**
id (serial)
timestamp (timestamp)
value1 (double)
value2 (double)
**Table B**
id (serial)
timestamp (timestamp)
text1 (text)
char1 (character)
**Table C**
id (serial)
timestamp (timestamp)
int1 (int)
int2 (int)
Поля идентификатора уникальны для каждой таблицы и действуют как первичные ключи.
Метки времени вводятся, когда строки помещаются в таблицу, но не связаны с другими таблицами, и каждая таблица может иметь строки, вставляемые в разное время.
То, что я хочу, - это представление или отдельный набор данных, который содержит все записи из каждой таблицы, отсортированные по метке времени.
В этом примере это будет означать, что набор данных будет иметь следующие столбцы:
**Output Table**
timestamp (timestamp)
value1 (double)
value2 (double)
text1 (text)
char1 (character)
int1 (int)
int2 (int)
Я понимаю, что для каждой строки этого результирующего набора данных 4 столбца будут пустыми. Однако мне нужно иметь возможность просматривать данные из всех таблиц, отсортированных в порядке отметок времени (и для заданного диапазона отметок времени)
Я смотрел на союзы, но им нужны общие типы данных столбцов, чтобы они не подходили.
Похоже, что соединениям требуется соединение между столбцами в одной таблице и другой, так что это не подходит.
Мне просто нужно создать таблицу, состоящую из всех столбцов трех таблиц, используя одну (временную метку) в качестве общего столбца сортировки.
Что было бы лучшим способом добиться этого? Возможно ли это даже в SQL?
Моей первоначальной идеей было извлечь данные из каждой таблицы отдельно в массив (PHP / C ++), а затем выполнить там сортировку, но это кажется невероятно медленным, поэтому я надеялся на гораздо более быстрое решение SQL. 1019 *
Примечание. В каждой таблице может быть много тысяч записей. Моя база данных находится в PostgreSQL, если она уместна.