Announcement

Collapse
No announcement yet.

Probleme mit mehrere Tabellen mit JOIN verknüpfen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit mehrere Tabellen mit JOIN verknüpfen

    Hi erstmal!

    So hier zu meinem Prob. Hab mich bei mySQL ein wenig eingearbeitet, verschiedene Tabellen kreiert, Primär- und Fremdschlüssel angelegt und diese mit Bsp. Daten gefüllt. (alles mit mySQL Admin)

    So, und hier was ich vorhabe. Ich arbeite mit den Tabellen "missions", "quests" und "questions". Zu jeder mission gehört eine Anzahl quests und ein quest beinhaltet mehrere Fragen. In meinem Beispiel habe ich zu jeder mission 2 quests und zu jedem quest 2 fragen.

    Nun möchte ich alle informationen zu genau einer mission auslesen. Das Ergebnis müsste also aus 1-Mission, 2-Quests mit jeweils 2-Fragen bestehen.

    Allerdings erreiche ich mit meinem Statement lediglich, dass aus der Datenbank NUR ein quest mit lediglich NUR einer Frage ausgelesen wird. Diese Anfrage wird allerdings öfter durchlaufen, nur mit denselben Ergebnissen. Ich denke, dass es an meinen JOINs liegen wird.

    So hier mein Statement:

    "SELECT * FROM missions
    INNER JOIN quests
    ON missions.idMissions=quests.idMissions
    INNER JOIN questions
    ON quests.idQuests=questions.idQuests
    WHERE missions.idMissions=idMission (idMission hat einen Wert)
    ORDER BY missions.idMissions;"


    Jemand von euch eine Idee? Wäre für Hilfe sehr dankbar!

    Greetz
    Cykane

  • #2
    Versuchs mal damit, es müssen ja nicht immer JOIN´s sein *g*
    Code:
    SELECT * 
    FROM missions m, quests q, questions qs
    WHERE m.idMissions = q.idMissions
    AND q.idQuests = qs.idQuests
    AND m.idMissions = idMission
    ORDER BY m.idMissions
    Ansonsten mal Tabellenstrukturen posten, dann wird´s leichter
    "A common mistake that people make
    when trying to design something completely foolproof
    is to underestimate the ingenuity of complete fools.
    "
    >>> Douglas Adams, Mostly Harmless
    -------------------------------------------------------
    Techcrawler.de | JaMT | deCHK | Extra-Bonus-Shopping.de | Scour

    Comment


    • #3
      Hallo,
      Originally posted by Cykane View Post
      ...Ich denke, dass es an meinen JOINs liegen wird.
      Nein, dein JOIN ist für das geschilderte Problem genau richtig. Diese Abfrage müßte dir insgesamt 4 Datensätze liefern. Ansonsten stimmt etwas mit deinen Daten nicht.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Hallo Sascha P.,
        Originally posted by Sascha P. View Post
        Versuchs mal damit, es müssen ja nicht immer JOIN´s sein *g*
        Code:
        SELECT * 
        FROM missions m, quests q, questions qs
        WHERE m.idMissions = q.idMissions
        AND q.idQuests = qs.idQuests
        AND m.idMissions = idMission
        ORDER BY m.idMissions
        Und was ist das was du da gepostet hast? Ist das kein JOIN? Gut, es ist kein Expliziter aber es ist ein Join!
        Also bitte nicht den Einsteigern die Begrifflichkeiten durcheinander bringen .

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Originally posted by Falk Prüfer View Post
          Und was ist das was du da gepostet hast? Ist das kein JOIN? Gut, es ist kein Expliziter aber es ist ein Join!
          Also bitte nicht den Einsteigern die Begrifflichkeiten durcheinander bringen .
          Wo wir schon bei Einsteigern sind: Nein, es ist kein JOIN. Es ist _intern_ ein JOIN, kann sein, aber der Einsteiger muss keinen JOIN schreiben und auch den JOIN 'per se' nicht beherrschen (bsonderheiten für LEFT JOIN usw. entfallen).
          Für den Einsteiger ist der SQL Code übersichtlicher, beherrschbarer und bringt ihn zum Ziel.
          Ich würde einen Einsteiger erstmal ohne JOIN helfen wollen, dass es nachher intern doch zum JOIN wird, muss ja _erstmal_ keiner wissen.

          Wir haben also beide recht, je nach Standpunkt
          "A common mistake that people make
          when trying to design something completely foolproof
          is to underestimate the ingenuity of complete fools.
          "
          >>> Douglas Adams, Mostly Harmless
          -------------------------------------------------------
          Techcrawler.de | JaMT | deCHK | Extra-Bonus-Shopping.de | Scour

          Comment


          • #6
            Nein, es ist kein JOIN. Es ist _intern_ ein JOIN, kann sein,
            Doch es ist einer. Auch extern. Ein reinrassiger sogar

            Comment


            • #7
              Danke euch! Hab's jetzt hinbekommen. Hab zwar noch die Einträge redundant drin, das wird aber wahrscheinlich an meinem Java Code liegen.

              Die Bestätigung mit der richtigen Join Anwendung erleichtert auch. ^^

              Vielen Dank!

              Comment

              Working...
              X