Ok, für das Beispiel habe ich drei Tabellen:Wie können Sie nicht verwandte Tabellen zusammenführen, aber nach einem gemeinsamen Spaltentyp sortieren?
**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)
Die ID-Felder für jede Tabelle eindeutig sind, und als Primärschlüssel dienen. Zeitstempel werden eingegeben, wenn Zeilen in der Tabelle platziert werden, aber nicht mit den anderen Tabellen verbunden sind. In jede Tabelle können Zeilen zu unterschiedlichen Zeiten eingefügt werden.
Was ich will ist eine Ansicht oder ein einzelnes Dataset, das alle Datensätze aus jeder der Tabellen enthält, sortiert nach Zeitstempel.
In diesem Beispiel würde dies bedeuten, dass der Datensatz die folgenden Spalten haben würde:
**Output Table**
timestamp (timestamp)
value1 (double)
value2 (double)
text1 (text)
char1 (character)
int1 (int)
int2 (int)
Ich verstehe, dass für jede Zeile dieses resultierenden Datensatz 4 der Spalten leer wäre. Allerdings muss ich in der Lage sein, die Daten aus allen Tabellen sortiert in der Reihenfolge der Zeitstempel (und für einen bestimmten Zeitstempel Bereich) zu sehen
Ich habe Gewerkschaften angesehen, aber sie wollen gemeinsame Spalte Datentypen, so dass didn ' t fit. Joins schien eine Verbindung zwischen Spalten in einer Tabelle und anderen zu benötigen, so dass nicht passt.
Ich muss nur eine Tabelle erstellen, die aus allen Spalten der drei Tabellen besteht, mit einem einzigen (Zeitstempel) als gemeinsame Sortierspalte.
Was wäre der beste Weg, um dies zu tun? Ist das in SQL überhaupt möglich?
Meine ursprüngliche Idee war, die Daten aus jeder Tabelle getrennt in ein Array (PHP/C++) zu extrahieren, dann eine Sortierung dort durchzuführen, aber das scheint unglaublich langsam zu sein, also hoffte ich auf eine viel schnellere SQL-Lösung.
Hinweis: Die Tabellen können jeweils viele tausend Einträge enthalten. Meine Datenbank ist in PostgreSQL, wenn es relevant ist.
Leider werden die Daten von externen Anwendungen generiert, die ich nicht kontrollieren kann, und ich muss mich nur mit ihrer mangelnden Vorsichtigkeit (wie immer) auseinandersetzen. :( – Dave