SQL Problem

Dieses Thema im Forum "SQL und Datenbanken" wurde erstellt von tr0nix, 11.03.2004.

  1. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Hallo zusammen

    Ich habe ein Abfrageproblem.. und zwar folgendes:

    Ich habe 5 Tables:
    Change
    ChangeRef
    Environment
    Application
    Server

    - In Application und Server stehen sinnesweiser Applikationsnamen und Servernamen.
    - In Environment werden diese zu einer "Environment" verschmolzen (Also Applikation Test auf Server Spielwiese).
    - In Change werden Änderungen eingegeben. Jeder Change kriegt eine ChangeID (Primary Key)
    - In ChangeRef wird eine Umgebung einem Change zugeteilt. Natuerlich kann durch einen weiteren Eintrag dort eine weitere Umgebung einem Change zugeteilt werden.

    Was ich nun machen will:
    Bei meiner Webapplikation soll man auf einen Server bzw. eine Application klicken können, und darin alle Changes sehen in welcher der Server bzw. die Applikation vorkommt.

    Sprich: Ich weiss den Server/Applikation, muss nachschauen in welchen Environments dieser ist und anschliessend in der Change/Environment-Tabelle (ChangeRef) nachschauen, welcher Change diese Umgebung hat.
    Zuguterletzt beziehe ich dann auch noch die Informationen des Changes da nur die Changenummern nicht so deutlich sind für den Anwender.

    Das hier hab ich mal gebastelt anhand einer suche mit einer Applikation:
    Code:
    SELECT * FROM
    `Change`, `ChangeRef`, `Environment`, `Application` WHERE
    `Change`.`ChangeID` = `ChangeRef`.`ChangeRefChRef` AND 
    `ChangeRef`.`ChangeRefEnvRef` = `Environment`.`EnvironmentID` AND
    `Environment`.`EnvironmentAppRef` = \'' .$_GET['name'] .'\';
    
    ChangeID = ID des Changes (Prim.)
    ChangeRefChRef = Referenz zu ID des Changes im Table ChangeRef
    ChangeRefEnvRef = Referenz zur ID der Environment im Table ChangeRef
    EnvironmentID = ID des Environment (Prim.)
    EnvironmentAppRef = Referenz zum Namen der Applikation im Table Environment

    Das $_GET['name'] ist dabei der Applikationsname.

    Das Problem:
    Ich kriege alle Einträge doppelt!?

    Kann mir da jemand helfen?
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hopfe

    hopfe Haudegen

    Dabei seit:
    01.04.2003
    Beiträge:
    733
    Zustimmungen:
    0
    Ort:
    Aachen
    Die einfachst lösung wäre ein "SELECT DISTINCT *", aber ich denke es liegt daran das du die Tabelle Application nicht mit der Tabelle Enviroment vergleichst.

    Du solltest daher dein Teil
    Code:
    `Environment`.`EnvironmentAppRef` = \'' .$_GET['name'] .'\';
    durch sowas in der Art wie (wobei Appid natürlich durch dein PK ersetzten mußt)
    `Environment`.`EnvironmentAppRef` =  AND `Application`.`Appid` 
    `Application`.`Appid` = \'' .$_GET['name'] .'\';
     
  4. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Jo ich hab jetzt eine Loesung mit DISTINCT gebastelt, indem ich kein * - Selecte sondern explizit die Werte die ich brauche.. schade unterstuetzt MySQL noch keine views :( (soll mit 5.1 kommen!)
     
Thema:

SQL Problem

Die Seite wird geladen...

SQL Problem - Ähnliche Themen

  1. Problem mit Win-Zugriff auf SAMBA

    Problem mit Win-Zugriff auf SAMBA: Hallo rundherum, vielleicht hat jemand eine Idee... Habe jetzt schon 1 1/2 Tage damit verbraten und den Fehler nicht gefunden. Problem:...
  2. [SOLVED]Linux/W7 Dualboot efi problem

    [SOLVED]Linux/W7 Dualboot efi problem: Moin, ich plage mich gerade mit dem Problem des Dualboot Und zwar würde ich gerne mein efi installiertes Windows ebenfalls mit grub booten...
  3. Linkerproblem mit MXE

    Linkerproblem mit MXE: Hallo Leute :winke:, ich war echt lange nicht mehr hier... Wie auch immer, ich schreibe gerade ein Programm, das sowohl Qt5, als auch OpenMP...
  4. Forscher analysieren Durchsatzprobleme im Linux-Scheduler

    Forscher analysieren Durchsatzprobleme im Linux-Scheduler: Eine Gruppe von Forschern hat Fälle identifiziert, in denen der Scheduler im Linux-Kernel falsche Entscheidungen trifft und die CPUs nicht so gut...
  5. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...