tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
212
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    zwiebel zwiebel ist offline Grünschnabel
    Registriert seit
    Jan 2010
    Beiträge
    2
    Hey, vielleicht stelle ich mich etwas blöd an, aber ich habe noch kein Problem für meine Frage gefunden (oder ich weiß nicht genau, wonach ich suchen muss
    Deshalb hier meine Frage:

    Ich habe eine Tabelle studiengaenge a mit mehreren Studiengängen einer Hochschule. Aus den Tabellen abschluss b und schulform c möchte ich nun in einer Abfrage den Namen des Abschlusses und (wenn vorhanden) der Schulform des in der Tabelle studiengaenge hinterlegten Studiengangs herausfinden.

    Die bisherige Abfrage sieht so aus:

    SELECT a.*,b.abschluss,c.schulform
    FROM studiengaenge a, abschluss b, schulform c
    WHERE a.studiengang = '$studiengang' AND b.id = a.abs AND c.id = a.sch

    Mein Problem: Die bisherige Abfrage (s.u.) klappt prima, wenn sowohl Tabelle b und Tabelle c einen Wert > 0 enthalten. Allerdings gibt es einige Studiengänge, die nicht auf eine bestimmte Schulform ausgerichtet sind und deswegen als Inhalt '0' haben (bei Verwendung von tinyint). Da in dem Fall in der Tabelle c natürlich keine entsprechende id vorhanden ist, funktioniert die Abfrage nicht.

    Gibt es eine Möglichkeit, mit der ich in beiden Fällen das richtige Ergebnis herausbekomme?
     

  2. #2
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.073
    Ich kenn jetzt zwar die Tabellenstruktur nicht richtig, aber ich würde es mit Joins machen.

    eventuell so:

    Code sql:
    1
    2
    3
    4
    5
    
    SELECT a.*, b.abschluss, c.schulform
                    FROM studiengaenge a
                    LEFT JOIN abschluss b ON b.id=a.abs
                    LEFT JOIN schulform c ON c.id=a.sch
                    WHERE a.studiengang = '$studiengang' "
     

  3. #3
    Avatar von SilentWarrior
    SilentWarrior SilentWarrior ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Beiträge
    3.078
    Zitat Zitat von Maniac_81 Beitrag anzeigen
    Ich kenn jetzt zwar die Tabellenstruktur nicht richtig, aber ich würde es mit Joins machen.

    eventuell so:

    Code sql:
    1
    2
    3
    4
    5
    
    SELECT a.*, b.abschluss, c.schulform
                    FROM studiengaenge a
                    LEFT JOIN abschluss b ON b.id=a.abs
                    LEFT JOIN schulform c ON c.id=a.sch
                    WHERE a.studiengang = '$studiengang' "
    Das löst aber sein Problem nicht.

    Vielleicht so?

    Code sql:
    1
    2
    3
    
    SELECT a.*,b.abschluss,c.schulform
    FROM studiengaenge a, abschluss b, schulform c
    WHERE a.studiengang = '$studiengang' AND b.id = a.abs AND (c.id = a.sch OR a.sch = 0)

    Wenn das nicht funktionieren sollte, wäre es vielleicht ratsam, deine Tabellenstruktur hier anzugeben.
     

  4. #4
    zwiebel zwiebel ist offline Grünschnabel
    Registriert seit
    Jan 2010
    Beiträge
    2
    Vielen Dank ihr beiden. Hat leider beides nicht so geklappt, wie ich das wollte.
    Bin durch beim Lesen des Beitrags von SilentWarrior aber auf eine andere Idee gekommen, die das Problem ganz einfach gelöst hat
     

  5. #5
    Avatar von SilentWarrior
    SilentWarrior SilentWarrior ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Beiträge
    3.078
    Zitat Zitat von zwiebel Beitrag anzeigen
    Bin durch beim Lesen des Beitrags von SilentWarrior aber auf eine andere Idee gekommen, die das Problem ganz einfach gelöst hat
    Dann poste sie doch hier, falls ein anderer irgendwann mal das gleiche Problem hat.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 22.08.10, 12:49
  2. komme nicht weiter!
    Von boennchen im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 04.10.05, 12:23
  3. Komme da nicht weiter :-(
    Von Yael_17 im Forum PHP
    Antworten: 22
    Letzter Beitrag: 05.12.04, 15:24
  4. Komme da nicht weiter :-(
    Von nizzan im Forum PHP
    Antworten: 6
    Letzter Beitrag: 28.11.04, 00:16
  5. Komme nicht weiter
    Von nixwisser im Forum ASP
    Antworten: 1
    Letzter Beitrag: 11.10.02, 12:14