1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Daten aus einer Tabelle auslesen und für 2te Tabelle nutzen?

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von Kimymoon86, 17. April 2012.

  1. Kimymoon86

    Kimymoon86 Grünschnabel

    Guten Abend alle zusammen.
    Ich bin ein neuling in MySql und würde mich freuen wenn ihr mir weiterhelfen könntet. Ich habe zwei Tabellen
    1.Tabelle : temperatur
    ID Ort Datum Temperatur
    1 Hallein 12.02.1968 12,4
    2 Graz 04.05.2011 28,0
    3 Salzburg 01.02.1989 30,2 ...

    In der zweiten Tabelle steht unter anderem das hier:

    2. Tabelle: ort
    Ortsname Bundesland
    Hallein Salzburg
    Salzburg Salzburg
    Innsbruck Tirol....

    sorry hab was ausgebessert, hatte was vergessen!

    so ich würde jetzt gerne die Durschnittstemperatur aller Messungen für das Bundesland Salzburg ausgeben. Also muss ich zuerst in die Tabelle 2 gehen und herausfinden welche Bundesland Salzburg sind. Aber wie greif ich dann auf die Tabelle 1 zu, die WErte zu verwenden. Damit ich weis das Graz nicht zum Bundesland Salzburg gehört. Die Durchschnittstemperatur hätt ich denk ich schon richtig, mit dem ersten Schritt hab ich aber noch Probleme.

    Ich würde mich sehr über HIlfe freuen.

    Danke
    Zuletzt bearbeitet: 18. April 2012
  2. Yaslaw

    Yaslaw n/a Moderator

  3. Kimymoon86

    Kimymoon86 Grünschnabel

    Super danke für den Tip. Ich hab es jetzt mit diesem Befehl gemacht:
    Select Ort, Bundesland, Datum, Temperatur,
    AVG (Temperatur)
    from ort, temperatur
    where Bundesland = 'Salzburg'
    group by Ort

    Er gibt mir jedoch nicht nur die Orte im Bundesland Salzburg sondern auch noch andere an. Was ist falsch an meinem Code?
    Zuletzt bearbeitet: 18. April 2012
  4. Yaslaw

    Yaslaw n/a Moderator

    Du hast ort und temperatur nicht verknüpft. Das gibt [Anzahl Orte mit Bundesland 'Salzburg']*[Anzahl aller Temperturen]

    Du brauchst ein JOIN oder mindestens eine Verknüpfung der beiden Tabellen im WHERE
    Code (SQL):
    1. ort.ort = temeratur.ort
  5. Kimymoon86

    Kimymoon86 Grünschnabel

    Aber wie bezieh ich dann das Bundesland mit ein. Wenn ich das wie du geschrieben habe mache, dann bekomm ich ja alle Orte die gleich sind. Aber ich will ja nur die Orte die in Tabelle Ort unter Bundesland Salzburg zu finden sind. Die will ich in der Tabelle Temperatur finden und ausgeben.
    Ok danke für die Hilfe ich habs geschafft^^
    Zuletzt bearbeitet: 18. April 2012
  6. Kimymoon86

    Kimymoon86 Grünschnabel

    Hätte jetzt noch eine Frage: wie such ich mir alle Messergebnisse für Orte ausserhalb des Bundeslands Salzburg, deren Werte niedriger sind als die minimale Temperatur im
    Bundesland Salzburg im März?
    Bin derweil soweit, aber das zeigt mir nur alle ausserhalb vom Bundesland Sbg an.
    SELECT Bundesland, Temperatur, Ort
    FROM temperatur
    INNER JOIN `ort` ON (ort.Ortsname = temperatur.ort)
    WHERE Ort.Bundesland != 'Salzburg';

Diese Seite empfehlen