Sie sind nicht angemeldet.

  • Anmelden

Lieber Besucher, herzlich willkommen bei: MastersForum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

23.01.2007, 11:06

SQL Problem...

moin moin....

ich hab folgendes problem:

ich möchte den inhalt von 2 DB auslesen, die teilweise ähnlich feldernamen haben (datentyp auch gleich)......

konkret, ich hab eine DB mit aktuellen terminen (timestamp) und eine DB mit archivierten terminen, ebenfalls mit einem timestamp - und nun will ich eine ausgabe machen, die alle termine, in sortierter timestamp reihenfolge ausgibt.

da in der archiv DB auch termine sein können, die einen "frischeren" timestamp als termine in der aktuellen termine DB haben, kann ich nicht einfach 2 verschieden abfragen in folge machen..... °°

hat einer ne idee?

was ist mit UNION ALL ? dachte das könnte ich nutzen, aber bekomm da kein ergebnis! :-(
Ordnung ist das halbe Leben...ich leb in der anderen Hälfte :evil:

-=)GWC(RaMsEs

Erleuchteter

Beiträge: 5 098

Wohnort: Bamberg

Beruf: IT-ler

  • Nachricht senden

2

23.01.2007, 11:20

"da in der archiv DB auch termine sein können, die einen "frischeren" timestamp als termine in der aktuellen termine DB haben, kann ich nicht einfach 2 verschieden abfragen in folge machen..... °°"

das kapier ich nicht. du könntest dir ja das erste mal den jüngsten eintrag i nder archiv db holen und mit dem als argument reingehen.

oder aber sowas

select * from
{
Select ort,datum from table1
union
Select ort,datum from table2
}
order by datum

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »-=)GWC(RaMsEs« (23.01.2007, 11:21)


3

23.01.2007, 11:21

z.B. sowas:

SELECT a.termin FROM (SELECT termin FROM tabelle1 UNION SELECT termin FROM tabelle2) AS a ORDER BY a.termin

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Imp_Vmax_« (23.01.2007, 11:22)


4

23.01.2007, 11:35

ups ihr seid ja flott....

also

ich hab eine DB, nennen wir sie DB1, mit folgenden benötigten feldern...

id, time, status

und DB2, in der, neben anderen, auch die felder

id, time, status

vorhanden sind!

ich will jetzt eine liste ausgeben, die alle einträge beider DBs in zeitlicher reihenfolge anzeigt!

und eure vorschläge klappen nicht, oder ich mach da irgendwo nen dummen fehler.......

5

23.01.2007, 11:41

du redest immer von DBs.....
Meinst du Tables oder hast du wirklich zwei DBs mit je einem Table?

Falls es zwei Tabellen in einer DB sind:
SELECT a.* FROM (SELECT id,time,status FROM tabelle1 UNION SELECT id,time,status FROM tabelle2) AS a ORDER BY a.time

Ansonsten:
SELECT a.* FROM (SELECT id,time,status FROM DB1.tabelle UNION SELECT id,time,status FROM DB2.tabelle) AS a ORDER BY a.time


Mit MYSQL funzt das so...

6

23.01.2007, 11:42

mein natürlich 2 tables in einer DB.....

°°



hmmmm....

also ich hab eure vorschläge mal benutzt, aber bekomm da immer nur ne fehlermeldung....

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id,time,status FROM DB1 UNION SELE

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »CULT_Bastrup« (23.01.2007, 11:47)


-=)GWC(RaMsEs

Erleuchteter

Beiträge: 5 098

Wohnort: Bamberg

Beruf: IT-ler

  • Nachricht senden

7

23.01.2007, 16:48

SELECT a.* FROM (SELECT id,time,status FROM tabelle1 UNION SELECT id,time,status FROM tabelle2) AS a ORDER BY a.time

von vmax finde ich gut, aber du must natürlich auch das tabelle1 und tabelle2 umbennen^^

oder noch expliziter:

SELECT a.* FROM
(

SELECT tabelle1 .id,tabelle1.time,tabelle1.status FROM tabelle1

UNION

SELECT tabelle2.id,tabelle2.time,tabelle2.status FROM tabelle2

)
a ORDER BY a.time

hm aber die klammerung ist da glaub noch falsch bein as a, mal kurz kucken.

Edit: probiers mal so wie ich geschrieben hab.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »-=)GWC(RaMsEs« (23.01.2007, 16:58)


Beiträge: 735

Wohnort: Baden Württemberg

Beruf: GER

  • Nachricht senden

8

23.01.2007, 17:48

Zitat

Original von CULT_Bastrup
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id,time,status FROM DB1 UNION SELE


probier mal nen ; (strichpunkt) hinter den codezeilen, falls du das nicht hast. glaub bei fehlendem ; bringt er auch den syntax fehler

9

23.01.2007, 19:18

geht auch ohne bei mysql

10

23.01.2007, 23:20

hmmm......

danke bis hier, aber ich komm da nciht auf nen grünen zweig.....

immer diese fehlermeldung, obwohl ich es 100% so übernommen hab und natürlich auch die table (tabelle1 und 2) richtig umbenannt!


:-(

echt scheisse!

11

23.01.2007, 23:38

kannst du das statement mal posten?

12

23.01.2007, 23:51

Zitat

SELECT a.* FROM
(
SELECT tabelle1.id, tabelle1.time, tabelle1.status FROM tabelle1
UNION
SELECT tabelle2.id, tabelle2.time, tabelle2.status FROM tabelle2
)
AS a ORDER BY a.time;


Kopier das noch einmal eins zu eins und änder die unterstrichenen Wörter entsprechend. Ich hab extra zwei Tabellen angelegt und es getestet... das muss so funktionieren.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »patrik« (23.01.2007, 23:52)


13

23.01.2007, 23:56

Zitat

Original von CULT_Bastrup
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id,time,status FROM DB1 UNION SELE


Heißt deine erste Tabelle wirklich DB1?

EDIT: Hab noch mal was getestet, müsste eigentlich richtig sein, ansonsten kommt eine andere Fehlermeldung. Wenn eine Spalte nicht existiert bzw. du eine Spalte falsch geschrieben hättest, käme auch eine andere Fehlermeldung.

Es muss sich also wirlich um einen Syntax Fehler handeln. Wie gesagt, probier noch mal das Statement oben und wenn das nicht geht -> poste mal das was du eingegeben hast!

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »patrik« (24.01.2007, 00:00)


14

24.01.2007, 08:28

also vielen dank an euch jungs....

union ist auf jeden fall der richtige befehl, aber die syntax war etwas anders.......



klappt aber jetzt auch mit drei tablen! ;-)