[SQL allgemein] Verknüpfung von drei Tabellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [SQL allgemein] Verknüpfung von drei Tabellen

    Hallo!

    Ich soll für mein Nicht-Informatik-Studium eine Hompage erstellen in der eine sql-Datenbank eingebaut ist.
    Eine Teilaufgabe ist für eine Datenbankabfrage drei Tabellen miteinander zu verknüpfen.
    Ich habe versucht im Form eine Lösung zufinden, aber leider ohne Erfolg.

    Ich habe drei Tabellen in meiner Datenbank: Haupttabelle, Ausleihe und Standort.

    Hier ist die sql-Datei

    CREATE TABLE Haupttabelle(
    handbuchnummer INTEGER(3) NOT NULl PRIMARY KEY,
    name_handbuch CHAR(10),
    Zusaetze INTEGER(2),
    lieferdatum_zusaetze DATE,
    lieferdatum_handbuch DATE,
    standortnummer INTEGER(3) NOT NULL,
    personalnummer INTEGER(3) NOT NULL,
    FOREIGN KEY (Personalnummer) REFERENCES Ausleihe (Personalnummer),
    FOREIGN KEY (Standortnummer) REFERENCES Standort (Standortnummer),
    FOREIGN KEY (Handbuchnummer) REFERENCES Handbuch (Standortnummer));

    CREATE TABLE Ausleihe(
    personalnummer INTEGER(3) NOT NULL PRIMARY KEY,
    name_angestellter CHAR(20));
    INSERT INTO Ausleihe
    VALUES ("001", "Müller"),("002", "Schmidt"), ("003", "Meier");


    CREATE TABLE Standort(
    Standortnummer INTEGER(3) NOT NULL PRIMARY KEY,
    Standort CHAR(29));
    INSERT INTO Standort
    VALUES ("901", "Verwaltung"),("902", "Produktion"), ("903", "Controlling");

    Ich habe versucht die Tabellen über folgenden Befehl zu vernküpfen:

    $anfrage="SELECT haupttabelle.handbuchnummer, haupttabelle.name_handbuch, haupttabelle.zusaetze, haupttabelle.lieferdatum_zusaetze, haupttabelle.lieferdatum_handbuch, haupttabelle.personalnummer, haupttabelle.standortnummer FROM hauptabelle, ausleihe, standort WHERE ($Attribut LIKE '$suchanfrage') AND haupttabelle.personalnummer = ausleihe.personalnummer AND haupttabelle.standortnummer = standort.standortnummer) ORDER BY handbuchnummer ";

    Leider bekomme ich immer eine Fehlermeldung:

    Vielen Dank Helge

  • #2
    Re: [SQL allgemein] Verknüpfung von drei Tabellen

    Original geschrieben von Helge1978
    Leider bekomme ich immer eine Fehlermeldung:
    Vielen Dank Helge
    klasse, die fehlermeldung "Vielen Dank Helge" ist mir/uns neu

    1. poste mal die fehlermeldung
    2. benutze bitte die php-tags des forums
    3. schau dir schonmal den sticky zu joins hier im sql-forum an
    Kissolino.com

    Kommentar


    • #3
      [SQL allgemein]

      Hallo!

      Hier ist die komplette Fehlermeldung:

      SELECT haupttabelle.handbuchnummer, haupttabelle.name_handbuch, haupttabelle.zusaetze, haupttabelle.lieferdatum_zusaetze, haupttabelle.lieferdatum_handbuch, haupttabelle.personalnummer, haupttabelle.standortnummer FROM hauptabelle, ausleihe, standort WHERE (handbuchnummer LIKE '') AND haupttabelle.personalnummer = ausleihe.personalnummer AND haupttabelle.standortnummer = standort.standortnummer) ORDER BY handbuchnummer Fehlermeldung=You have an error in your SQL syntax near ') ORDER BY handbuchnummer ' at line 1

      Hier ist auch der Link zu der Homepage:

      http://mitglied.lycos.de/helge1978/

      Helge

      Kommentar


      • #4
        kann es sein, dass du eine schließende klammer zuviel hast? )
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Danke für den Tip!

          Die Abfrage an sich funktioniert jetzt. Allerdings findet die Verknüpfung nicht statt. Es werden zwar die Personalnummer und die Standortnummer raus gesucht. Allerdings sollen anstatt Personalnummer und Standortnummer der Name des Angestellten und der Name des Standortes raus gegeben werden.

          Der Befehl seht jetzt so aus

          <?php
          $anfrage="SELECT Haupttabelle.handbuchnummer, Haupttabelle.name_handbuch, Haupttabelle.zusaetze, Haupttabelle.lieferdatum_zusaetze, Haupttabelle.lieferdatum_handbuch, Haupttabelle.personalnummer, Haupttabelle.standortnummer FROM Haupttabelle, Ausleihe, Standort WHERE ($Attribut LIKE '$Suchanfrage')AND Haupttabelle.personalnummer = Ausleihe.personalnummer AND Haupttabelle.standortnummer = Standort.standortnummer ORDER BY handbuchnummer ";
          ?>

          Kommentar


          • #6
            Re: Re: [SQL allgemein] Verknüpfung von drei Tabellen

            Original geschrieben von Wurzel
            3. schau dir schonmal den sticky zu joins hier im sql-forum an
            Wie Wurzel schon sagte ... schau dir mal den Sticky zu den "joins" an.
            Diese stellen erst die Verknüpfung zwischen den Tabellen her.
            [color=red]Geht nicht[/color] ist keine Fehlermeldung

            Kommentar


            • #7
              Re: Re: Re: [SQL allgemein] Verknüpfung von drei Tabellen

              Original geschrieben von Big Chief
              Diese stellen erst die Verknüpfung zwischen den Tabellen her.
              sein WHERE macht das auch

              aber du solltest dir einfach standort.standortname ausgeben lassen können (vorausgesetzt, das feld heißt so in der tabelle) wenn du das in den SELECT-teil aufnimmst
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Dann nehme ich natürlich alles zurück ... mir war nicht bewusst, dass eine Verknüpfung auch gänzlich ohne JOINS funktioniert ...
                [color=red]Geht nicht[/color] ist keine Fehlermeldung

                Kommentar


                • #9
                  Die Abfrage funktioniert. Danke für die Hilfe.

                  Kommentar

                  Lädt...
                  X