Ergebnis 1 bis 7 von 7

Thema: Query Abfrage Verhalten

  1. #1
    guma96 ist offline Neuer Benutzer
    Registriert seit
    05.03.2011
    Beiträge
    5

    Standard Query Abfrage Verhalten

    Hallo,
    ich bin Neuling auf dem Gebiet der SQL Abfrage und hatte mir von pgadmin
    Unterstützung erwartet, um die Daten meiner Wetterdatenbank selektieren zu können.

    In der Datenbank sind die Wetterdaten in Tables , airpressure,outsite_temp etc. nach dem Muster savetime,weatherdata gespeichert.

    Wenn ich mit dem graphischen Abfragegenerator eine Anfrage für ein Table z.B. Airpressure starte (savetime und weatherdata angeklickt) gelingt die Abfrage sofort.

    Die Frage ist nun wie kann ich aus verschiedenen tables die weatherdata ziehen, denn der timestamp savetime ist ja bei allen Datensätzen identisch.
    Beispiel:
    SELECT
    outside_temp.savetime,
    outside_temp.weatherdata,
    airpressure.weatherdata
    FROM
    public.airpressure,
    public.outside_temp
    WHERE
    outside_temp.savetime BETWEEN DATE'2011-01-01' AND DATE'2011-01-31'
    and extract(hour FROM outside_temp.savetime) BETWEEN 8 and 18;

    Wenn ich diese Abfrage starte, läuft diese unendlich....

    Wichtig wäre für mich die Daten verschiedener tables zusammenfassen zu können, um diese dann als csv Datei zu exportieren.

    Ich hoffe ihr könnt mich hier unterstützen.

    L.G. Guido

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von guma96 Beitrag anzeigen
    Hallo,
    ich bin Neuling auf dem Gebiet der SQL Abfrage und hatte mir von pgadmin
    Unterstützung erwartet, um die Daten meiner Wetterdatenbank selektieren zu können.

    In der Datenbank sind die Wetterdaten in Tables , airpressure,outsite_temp etc. nach dem Muster savetime,weatherdata gespeichert.

    Wenn ich mit dem graphischen Abfragegenerator eine Anfrage für ein Table z.B. Airpressure starte (savetime und weatherdata angeklickt) gelingt die Abfrage sofort.

    Die Frage ist nun wie kann ich aus verschiedenen tables die weatherdata ziehen, denn der timestamp savetime ist ja bei allen Datensätzen identisch.
    Beispiel:
    SELECT
    outside_temp.savetime,
    outside_temp.weatherdata,
    airpressure.weatherdata
    FROM
    public.airpressure,
    public.outside_temp
    WHERE
    outside_temp.savetime BETWEEN DATE'2011-01-01' AND DATE'2011-01-31'
    and extract(hour FROM outside_temp.savetime) BETWEEN 8 and 18;

    Wenn ich diese Abfrage starte, läuft diese unendlich....

    Wichtig wäre für mich die Daten verschiedener tables zusammenfassen zu können, um diese dann als csv Datei zu exportieren.

    Ich hoffe ihr könnt mich hier unterstützen.

    L.G. Guido
    Du machst da einen CROSS-JOIN. Angenommen, beide Tabellen enthalten je 1000 Zeilen, dann kommst Du auf 1000 * 1000 Zeilen Resultat. Vermutlich willst Du das nicht.

    Daher: mache Dich schlau, was ein JOIN ist.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Ich verstehe dein Problem aktuell nicht. Eigentlich hast du den Join für deine Daten schon in deinem Beispiel gebracht.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  4. #4
    guma96 ist offline Neuer Benutzer
    Registriert seit
    05.03.2011
    Beiträge
    5

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Ich verstehe dein Problem aktuell nicht. Eigentlich hast du den Join für deine Daten schon in deinem Beispiel gebracht.
    Okay ein join soll die Datensätze miteinander verbinden, aber wenn ich in pgadmin
    mit dem graphischen Abfragegenerator zwei table in das query Fenster ziehe, dürfte ich doch davon ausgehen das der join automatisch generiert wird .....oder vielleicht nicht ??

    Ich bin der sql Sprache halt nicht mächtig :-(
    Beipsiel was pdadmin aus der graphischen Abfrage macht:
    SELECT
    airpressure.savetime,
    airpressure.weatherdata,
    rainfall.raincounter,
    rainfall.counteramount
    FROM
    public.airpressure,
    public.rainfall;

  5. #5
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Hmm, ja, mein Fehler, akretschmer hat mich gerade drauf hingewiesen.

    Dein JOIN wird automatisch generiert. Ein Join enthält alle möglichen Verknüpfungsprodukte.
    Was du suchst, ist eine Einschränkung deiner Verknüpfungen, bei denen die rechte Seite gleich der linken Seite ist.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von guma96 Beitrag anzeigen
    Okay ein join soll die Datensätze miteinander verbinden, aber wenn ich in pgadmin
    mit dem graphischen Abfragegenerator zwei table in das query Fenster ziehe, dürfte ich doch davon ausgehen das der join automatisch generiert wird .....oder vielleicht nicht ??
    Ja, es wird automatisch ein JOIN gemacht, ein CROSS JOIN. Das passiert, wenn man nicht angibt, wie die Daten der einen Tabelle mit denen der anderen zu verknüpfen sind. Das kann die Datenbank auch nicht erraten.

    Gib einfach mal in ein Dir vertrauenswürdige Suchmaschine die Begriffe SQL, LEFT, RIGHT, JOIN und so ein. Es gibt massig Doku zum Thema.

    In Deinem Fall willst Du zwei Tabellen so verbinden, daß von tabelle1.spalte1 gleich tabelle2.spalte2 ist. Hilft Dir das weiter?

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    guma96 ist offline Neuer Benutzer
    Registriert seit
    05.03.2011
    Beiträge
    5

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen

    In Deinem Fall willst Du zwei Tabellen so verbinden, daß von tabelle1.spalte1 gleich tabelle2.spalte2 ist. Hilft Dir das weiter?

    Andreas
    Ja das reicht mir, lieben dank.

    pgadmin kann auch mittel graphischen Abfragegenerator die joins herstellen und das kommt dabei heraus:

    SELECT
    airpressure.savetime,
    airpressure.weatherdata,
    inside_hum.weatherdata
    FROM
    public.airpressure,
    public.inside_hum
    WHERE
    airpressure.savetime = inside_hum.savetime;

    Lieben Dank

    Guido

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.03.2011, 01:00
  2. Frage autovacuum verhalten
    Von soulspirit im Forum Konfiguration
    Antworten: 4
    Letzter Beitrag: 13.03.2009, 13:31
  3. Antworten: 4
    Letzter Beitrag: 18.12.2008, 13:59
  4. Antworten: 0
    Letzter Beitrag: 11.02.2008, 13:28
  5. Antworten: 4
    Letzter Beitrag: 05.07.2007, 11:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum