Ergebnis 1 bis 2 von 2

Thema: Anfrage liefert falsche Ergebnisse

  1. #1
    borki ist offline Neuer Benutzer
    Registriert seit
    09.12.2011
    Beiträge
    1

    Standard Anfrage liefert falsche Ergebnisse

    Hallo zusammen,
    da die Suchfunktion iwie nichts passendes ausgespuckt hat, hier mein Problem:

    Ich habe eine Datenbank aus 8 Tabellen. Zwischen diesen Tabellen gibt es Beziehungen anhand von Fremdschlüsseln.
    Alles soweit gut und schön, jetzt mein Problem:
    Sobald ich eine Anfrage über mehrere Tabellen stelle gibt er mit nicht den konkret gesuchten Wert aus, sonder verknüpft vielmehr alle Einträge miteinander.
    Z.B. ich möchte den Namen der Person ausgeben haben, die als Tätigkeit Beleuchter ist. Dazu dann die passende Veranstaltungsort ID (VO_ID) und die Bezeichnung des dazugehörigen Ortes. Dabei muss man beachten, dass VO_ID eigentlich fest in der Veranstaltungsorttabelle ist und die VO_ID in PErsonal einen Fremdschlüssel auf die VO_ID in Veranstaltungsort hat.
    WAs ja Sinn macht, da jemand ja nicht für einen nicht vorhandenen Veranstaltungsort arbeiten kann!
    Jetzt gibt er mir aber nicht einen konkreten Eintrag nämliche:

    VO_ID name bezeichnung
    200004 Optimus Prime Consortium

    sondern verknüpft Optimus Prime und die VO_ID mit jeder möglichen Veranstaltungsortbezeichnung.
    Das geschieht bei allen anderen Tabellen auch.
    Ich muss dazu sagen, ich bin absoluter SQL Neuling und das ist ein Projekt in meinem Studiengang.
    Also hoffe ich mal ihr könntet mir helfen.
    Hier nochmal ein Screen des Ergebnisses.


    Uploaded with ImageShack.us

    Ich verwende pgadmin.
    Danke !

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    525

    Standard

    Es ist besser wenn Du SQL Statements als Text in Deine Frage packst. Aus einem Bild kann man kein Copy & Paste machen.

    Bei Deiner Abfrage fehlt ein JOIN zwischen den Tabellen:
    Code:
    SELECT p."VO_ID", 
           name,
           bezeichnung
    FROM "Personal" p
      JOIN "Veranstaltungsort" v ON p."VO_ID" = v."VO_ID
    where "tätigkeit" = 'Beleuchter'
    Ich kann Dir nur ans Herz legen das Tutorial aus dem PostgreSQL Handbuch durchzugehen, da werden diese Konzepte erklärt;
    PostgreSQL: Documentation: Manuals: Joins Between Tables

    Du solltest Dir im übrigen angewöhnen Tabellen- und Spaltennamen ohne Anführungszeichen anzulegen, dann sind die namen nicht case-sensitive (VO_ID ist dasselbe wie vo_id). Das erspart viele Problem. Auch Sonderzeichen (ä) führen meistens zu Problemen.
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Ähnliche Themen

  1. Ergebnisse aneinanderhängen
    Von Ciatronical im Forum SQL
    Antworten: 2
    Letzter Beitrag: 26.01.2011, 21:55
  2. Problem Perl execute liefert kein Ergebnis bei raise notice
    Von mkuis im Forum Programmierung
    Antworten: 2
    Letzter Beitrag: 10.09.2010, 10:38
  3. SQL JOIN Anfrage
    Von Taramsis im Forum SQL
    Antworten: 8
    Letzter Beitrag: 17.07.2009, 14:41
  4. SQL Anfrage
    Von coones69 im Forum SQL
    Antworten: 1
    Letzter Beitrag: 02.09.2008, 10:54
  5. Array_Upper liefert falsche Werte
    Von Imon im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 14.12.2007, 07:11

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