WAS stimmt hier nicht? Abfrage über 2 Tabellen

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

  • WAS stimmt hier nicht? Abfrage über 2 Tabellen

    Ich hab die Frage jetzt schon in 2 andren Foren gestellt und noch keine hilfreiche antwort bekommen vielleicht könnt ihr mir helfen.

    Also ich hab da folgendes Problem.
    Ich habe 2 Tabellen:
    Taetigkeiten mit den Feldern T_ID und BEZEICHNUNG

    Fuehrt_aus mit den Feldern T_ID, M_ID, PNAME, STATUS

    Nun möchte ich alle aus der Tabelle Taetigkeiten selektieren, und für diejenigen T_ID die auch in der Fuehrt_aus stehen und zudem einen bestimmten PNAME haben den STATUS

    folgende Abfrage die leider nicht funktioniert habe ich mir ausgedacht.
    "SELECT taetigkeiten.T_ID,taetigkeiten.BEZEICHNUNG fuehrt_aus.STATUS FROM taetigkeiten LEFT OUTER JOIN fuehrt_aus ON taetigkeiten.T_ID=fuehrt_aus.T_ID WHERE fuehrt_aus PNAME='$Projekt' ORDER BY BEZEICHNUNG"


    Wer hat eine Idee für mich?

  • #2
    da fehlen , und . und OUTER ist überflüssig
    PHP-Code:
    "SELECT 
       taetigkeiten.T_ID,
       taetigkeiten.BEZEICHNUNG,
       fuehrt_aus.STATUS 
    FROM taetigkeiten LEFT JOIN fuehrt_aus ON  
       taetigkeiten.T_ID=fuehrt_aus.T_ID 
    WHERE fuehrt_aus.PNAME='
    $Projekt
    ORDER BY taetigkeiten.BEZEICHNUNG" 
    EDIT:
    in welche Foren warst du denn?
    Zuletzt geändert von asp2php; 04.03.2005, 22:24.

    Kommentar


    • #3
      und fürs nächste Problem immer erstmal mysql_error() abchecken!

      Kommentar


      • #4
        sorry aber das hilft mir nicht weiter wahrscheinlich hab ichs falsch beschrieben

        also in meiner Tabelle taetigkeiten stehen genau 20 Einträge und die muss die Abfrage auf jedenfall auch alle selektieren und zurückgeben zusätzlich soll für die Tätigkeiten die auch in der fuehrt_aus Tabelle vorkommen und einen bestimmten Pname aufweisen der STATUS zurückgegeben werden (für den Rest also die T_ID die nicht unter dem Pname in der fuehrt_aus vorkommen wäre der STATUS dann wahrscheinlich NULL?) Oder geht das gar nicht?

        Was meinst du mit mysql_error()? bin ziemlich neu in der Materie.

        Kommentar


        • #5
          dann ändere WHERE in AND

          Kommentar


          • #6
            Danke so gehts.

            Kommentar


            • #7
              Ich war wohl gestern Abend vor lauter Begeisterung etwas voreilig hab grade gemerkt das dabei irgendwie doppelte Werte auftreten d.h. wenn ein in der fuehrt_aus mehrmals die gleiche T_ID unter dem gleichen PNAME auftaucht wird sie auch mehrmals selektiert und taucht dann auch mehrmals in meiner Auswahlliste auf. Das kann ich leider gar nicht gebrauchen.

              Kommentar


              • #8
                Versuch mal
                Code:
                SELECT 
                  taetigkeiten.T_ID,
                  taetigkeiten.BEZEICHNUNG,
                  IF(fuehrt_aus.PNAME='Guter Name', fuehrt_aus.STATUS, '') status
                FROM taetigkeiten 
                  INNER JOIN fuehrt_aus ON  
                     taetigkeiten.T_ID=fuehrt_aus.T_ID
                ORDER BY taetigkeiten.BEZEICHNUNG
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Nein das tuts auch nicht das gibt sogar noch mehr doppelte Werte zurück. Ich probier noch ein bischen und sag bescheid wenn ich ne Lösung hab

                  Kommentar


                  • #10
                    mach mal so:

                    PHP-Code:
                    "SELECT DISTINCT
                       taetigkeiten.T_ID,
                       taetigkeiten.BEZEICHNUNG,
                       fuehrt_aus.STATUS 
                    FROM taetigkeiten LEFT JOIN fuehrt_aus ON  
                       taetigkeiten.T_ID=fuehrt_aus.T_ID 
                    AND fuehrt_aus.PNAME='
                    $Projekt
                    ORDER BY taetigkeiten.BEZEICHNUNG" 

                    Kommentar


                    • #11
                      Wenn ich nichts übersehen habe klappt es mit DISTINCT. DAnke für die Hilfe

                      Kommentar

                      Lädt...
                      X