tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1007
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hattrix Hattrix ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Dresden
    Beiträge
    494
    Hallo,

    ich habe 3 Tabellen:

    Zeit1 ... wert ... datum
    Zeit2 ... wert ... datum
    Zeit3 ... wert ... datum

    Zeit 1 bis 3 sind die tabellen, "wert" und "datum" die Spalten dazu. Die heißen auch bei jedem gleich.

    Alle 3 Tabellen sind gefüllt mit Daten. Unterschiedliche Datumsangabe, der "wert" interessiert hierbei nicht.

    Ich will gern, dass ich alle 3 Tabellen so miteinander verknüpfen kann, damit ich nach "datum" sortieren kann. Mit INNER JOIN und UNION kam ich nicht zum Erfolg.

    Ich bitte um Hilfe eines SQL-Statements.
     

  2. #2
    planb2000 planb2000 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    133
    Hallo,

    was hast du denn bisher probiert?

    Bei UNION muß Du aufpassen welchen Typ du nimmst. Wäre aber auch meine erste rangehensweis. Außerdem ist die sortierung erst am Ende des statements fällig. Also poste mal Dein script.

    Grüße
     

  3. #3
    Hattrix Hattrix ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Dresden
    Beiträge
    494
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    
    SELECT wert,datum
    FROM zeit1
    UNION
    SELECT wert,datum
    FROM zeit2
    UNION
    SELECT wert,datum
    FROM zeit3

    Und egal was ich dann mit der Sortierungfunktion mache, er kann die Spalte datum nicht zuordnen.
     

  4. #4
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Min Hattrix,

    versuche es so:
    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    SELECT wert, datum FROM (
    SELECT wert,datum
    FROM zeit1
    UNION ALL
    SELECT wert,datum
    FROM zeit2 
    UNION ALL
    SELECT wert,datum
    FROM zeit3
    ) 
    ORDER BY Datum

    UNION ALL statt UNION verhindert, dass die Sätze schon beim UNION sortiert und deren Einmaligkeit sichergestellt wird. (Du sortierst ja selbst und willst je vielleicht auch Sätze mit gleichen Datum und gleichem Wert aus zwei Quelltabellen sehen.
    Ich würde noch zusätzlich eine Spalte "Quelle" einfügen, damit Du die Originaltabelle identifizieren kannst.

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    SELECT wert, datum, quelle FROM (
    SELECT wert,datum, 'Zeit1' AS quelle
    FROM zeit1
    UNION ALL
    SELECT wert,datum, 'zeit2'
    FROM zeit2 
    UNION ALL
    SELECT wert,datum, 'zeit3'
    FROM zeit3
    ) 
    ORDER BY Datum

    Grüße
    Biber
     

  5. #5
    Hattrix Hattrix ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Dresden
    Beiträge
    494
    Hilft leider nicht ... wenn ich es ausführe, bekomme ich immer folgende Fehlermeldung:

    Code sql:
    1
    
    #1248 - Every derived TABLE must have its own alias
     

  6. #6
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Zitat Zitat von Hattrix Beitrag anzeigen
    Hilft leider nicht ... wenn ich es ausführe, bekomme ich immer folgende Fehlermeldung:

    Code sql:
    1
    
    #1248 - Every derived TABLE must have its own alias
    Hmm, dann tu ihm doch den Gefallen...

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    SELECT a.datum, a.wert , a.quelle FROM (
     
    SELECT z1.datum, z1.wert, 'Zeit1' AS quelle FROM zeit1 AS z1
    UNION ALL
    SELECT z2.datum, z2.wert, 'Zeit2'  FROM zeit2 AS z2
    UNION ALL
    SELECT z3.datum, z3.wert, 'Zeit3'  FROM zeit3 AS z3
    ) AS a
    ORDER BY a.Datum

    Grüße
    Biber
     

  7. #7
    Hattrix Hattrix ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Dresden
    Beiträge
    494
    Code sql:
    1
    
    #1142 - SELECT command denied TO USER 'xxxxx'@'localhost' FOR TABLE 'zeit1'

    Ahja, alles klar. Keine Rechte? Ich arbeite mit den Daten seit vielen Monaten oder ist an der Anweisung irgendwas anderes? Ich glaub's kaum!?
     

  8. #8
    Hattrix Hattrix ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Dresden
    Beiträge
    494
    Kann mir keiner mehr helfen?
     

Ähnliche Themen

  1. mySQL Tabellen richtig miteinander verknüpfen (LEFT JOIN)
    Von morgenstern im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 27.01.09, 10:31
  2. MySQL: 2 Tabellen nach Datum sortieren
    Von Nord-Süd-Richtung im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 13.08.08, 13:32
  3. [MySQL] 4 Tabellen miteinander verknüpfen (JOIN)?
    Von preko im Forum Relationale Datenbanksysteme
    Antworten: 16
    Letzter Beitrag: 23.01.08, 21:10
  4. [MySQL] Zwei Tabellen abfragen und Ergebnis sortieren
    Von DJLopez im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 01.07.07, 23:49
  5. 3 Tabellen miteinander verknüpfen
    Von sasfed im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.01.05, 22:34