Ergebnis 1 bis 4 von 4

Thema: JOIN mit Tabellen ohne Eintrag

  1. #1
    maxx ist offline Neuer Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    13

    Standard JOIN mit Tabellen ohne Eintrag

    Hallo,

    ich versuche gerade eine etwas komplexe Abfrage zu erstellen. Die Tabelle A soll Einträge zurück geben, wenn verschiedene Contraints, die in anderen Tabellen definiert sind, erfüllt sind. Das funktioniert auch soweit ganz gut, solange die Tabellen Einträge enthalten für den entsprechenden Datensatz in A, die entweder zutreffen, oder halt auch nicht. Wenn aber eine dieser Tabellen keinen Eintrag für einen Datensatz in A hat, dann soll dieser Datensatz dennoch zurück gegeben werden (da keine Einschränkung für ihn besteht). Mit joins hab ich das nicht hinbekommen, aber ich bin mir nicht sicher, ob ich nicht auch was falsch gemacht habe.

    Vielen Dank schon mal für jeden Tipp,
    Markus

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

    Standard

    Zuerst einmal: wie soll irgendjemand dir hier helfen, wenn du kein Beispiel lieferst?
    Sollen wir raten, was bei dir nicht funktioniert? ;-)

    Ok, wenn ich raten soll, dann tippe ich darauf, dass du einen LEFT JOIN suchst.
    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

  3. #3
    maxx ist offline Neuer Benutzer
    Registriert seit
    01.06.2010
    Beiträge
    13

    Standard

    Sry, hier ein Beispiel:
    Code:
    SELECT a.id, a.url FROM a LEFT JOIN b ON ((b.aid = a.id AND b.start <= NOW() AND (b.until >= NOW() OR b.until IS NULL)))
    LEFT JOIN c ON (a.id = c.aid AND c.irgendwas like 'irgend%') 
    LEFT JOIN d ON (a.id = d.aid AND d.categoryid = 12)
    Das funktioniert, solange ich überall Einträge hab, die auf a.id verweisen. Ist jedoch zb leer, möchte ich, dass falls c und d zutreffen, oder auch leer sind, den entsprechenden Eintrag aus a bekomme. Im Moment ist das result leer.

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

    Standard

    Zitat Zitat von maxx Beitrag anzeigen
    Sry, hier ein Beispiel:
    Code:
    SELECT a.id, a.url FROM a LEFT JOIN b ON ((b.aid = a.id AND b.start <= NOW() AND (b.until >= NOW() OR b.until IS NULL)))
    LEFT JOIN c ON (a.id = c.aid AND c.irgendwas like 'irgend%') 
    LEFT JOIN d ON (a.id = d.aid AND d.categoryid = 12)
    Das funktioniert, solange ich überall Einträge hab, die auf a.id verweisen. Ist jedoch zb leer, möchte ich, dass falls c und d zutreffen, oder auch leer sind, den entsprechenden Eintrag aus a bekomme. Im Moment ist das result leer.
    Coding Horror: A Visual Explanation of SQL Joins

    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

Ähnliche Themen

  1. Keine Results mit JOIN, ohne JOIN schon
    Von SPYFAN im Forum Andere Datenbanken
    Antworten: 3
    Letzter Beitrag: 25.03.2012, 20:48
  2. Antworten: 2
    Letzter Beitrag: 29.03.2011, 19:36
  3. Antworten: 6
    Letzter Beitrag: 23.07.2010, 15:20
  4. Join über mehrere Tabellen
    Von wannebeme im Forum SQL
    Antworten: 5
    Letzter Beitrag: 02.12.2009, 18:57
  5. Problem mit Join-Statement 3er Tabellen
    Von Head im Forum Andere Datenbanken
    Antworten: 3
    Letzter Beitrag: 06.05.2009, 11:24

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