Join Problem

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

  • Join Problem

    Hallo,

    ich möchte folgende Afragen kombinieren:


    $result = mysql_query("SELECT DISTINCT spalte1 $tabelle1");
    $anzahl = mysql_num_rows($result);
    while($i_1 < $anzahl)
    {
    $i_1++;
    $row = mysql_fetch_array($result);


    }
    ?>

  • #2
    welche abfragen?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Join Problem

      Hallo,

      ich möchte folgende Afragen kombinieren:
      PHP-Code:
      $result mysql_query("SELECT DISTINCT spalte1 $tabelle1");
      $anzahl mysql_num_rows($result);
      while(
      $i $anzahl)
      {
      $i++;
      $row mysql_fetch_array($result);
      $string1 $row[spalte1];

         
      $result mysql_query("SELECT * FROM $tabelle2 WHERE spalte1 = '$string1' AND spalte2 = 'x' ");
         
      $anzahl mysql_num_rows($result);
         if (
      $anzahl != 0) echo "Nicht vorhanden";

      In eigenen Worten:
      Ich möchte die Zeile der ersten Tabelle nur selektieren, wenn der Wert aus der ersten Spalte der ersten Tabelle ebenfalls in der zweiten Tabelle auftaucht und dann noch der Wert "x" in der gleichen Zeile der zweiten Tabelle in der zweiten Spalte gefunden wird.
      Also etwa so:

      Tabelle1:
      id | spalte1
      --------------
      1 | apfel
      2 | apfel
      3 | birne

      Tabelle2:
      id | spalte1 | spalte2
      --------------------------
      1 | apfel | x
      2 | apfel |
      3 | birne | x

      Hier soll eben nur die Zeile mit der id 1 aus der Tabelle1 ausgeben werden.

      Das müßte doch auch einfacher gehen, z.B. per JOIN oder?
      Wie müßte ich das Join einsetzen?

      Danke!

      Jogi

      Kommentar


      • #4
        sorry, bitte thread löschen, war versehentlich auf ENTER gekommen...
        habs nochmal zuende formuliert danke!

        Kommentar


        • #5
          Original geschrieben von JogiWebster
          sorry, bitte thread löschen, war versehentlich auf ENTER gekommen...
          habs nochmal zuende formuliert danke!
          nö. hier wird ncihts gelöscht.

          und du kannst auch deien frage hier stellen und keinen neuen thread dafür aufmachen.

          *ZUSAMMENFÜHR*
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Code:
            SELECT
                T1.spalte1
            FROM
                tabelle1 T1
                    LEFT JOIN tabelle2 T2 USING(id)
            WHERE
                T2.spalte2 = 'x'
            bei deinem derzeitigen tabelleninhalt würde ich aber mal sagen, dass du die beiden tabellen gar nicht brauchst. tabelle1 ist ja bereits in tabelle2 in den ersten beiden spalten 1:1 enthalten.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Danke für die Antworten!

              Die Tabellen sind doch etwas komplexer als hier dargestellt, deshalb habe ich hier nur die wesentlichen Bestandteile angegeben.

              Aber noch eine Frage:
              Wie gestalte ich eine ganze einfahc Abfrage über zwei tabellen in einem Select
              z.B. Ist String1 in Tabelle1 und String2 in Tabelle2 vorhanden?

              Danke!
              Jogi

              Kommentar


              • #8
                schaue dir mein beispiel an.

                und noch was. verknüpfungen macht man normalerweise nur über id's aber niemals mit strings.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  ok, dann ist JOIN doch für meine letztere Frage garnicht der richtige Ansatzpunkt oder?
                  Danke Dir!

                  Kommentar


                  • #10
                    du kannst nur mit JOIN tabellen verbinden. anders geht es nicht.

                    aber schaue dir doch mal deine tabellen an. da musst du ansetzen. deine daten müssen mal 'vernünftig' strukturiert sein.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      ok, dann nochmal anders gefragt:

                      Kann ich JOIN überhaupt nutzen, wenn die beiden Tabellen unterschiedlich viele Zeilen haben?

                      Kann ich mit JOIN abfragen, ob ein bestimmter STRING in beiden Tabellen vorkommt bzw. die Zeilen verbinden, in denen der gleiche String auftaucht?

                      Mein Problem ist nämlich, das keine id definiert ist, über die ich eine Zugehörigkeit herstellen könnte.

                      Gruß

                      Jogi
                      Zuletzt geändert von JogiWebster; 05.10.2003, 16:25.

                      Kommentar


                      • #12
                        klar kannst du auch tabellen verbinden, bei denen unterschiedlich viele DS's drin sind. wo ist das problem, dass du das einfach mal selbstständig testest?
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Hey Abraxax,
                          nichts für ungut, aber ich habe hier zwei PHP4/mySQL Bücher vor mir liegen und habe die mySQL Doc und das Forum schon ordentlich durchforstet.
                          Dabei bin ich schon einige Tage am probieren, also bitte nimm mir meine "Anfänger" Fragen nicht übel.

                          Meine Hauptfrage war eigentlich auch eher:
                          Kann ich mit JOIN abfragen, ob ein bestimmter STRING in beiden Tabellen vorkommt bzw. die Zeilen verbinden, in denen der gleiche String auftaucht?
                          Ich kann dabei keine id`s verwenden, weil die Id`s der Tabellen in keiner Bezihung zueinander stehen.

                          Eigentlich möchte ich nur wissen, ob ein in Tabelle1.Spalte1 gefundener String auch irgendwo in der Tabelle2 auftaucht.
                          Wenn diese Bedingung erfüllt ist, dann muss zusätzlich noch gegeben sein, dass in der entsprechenden Zeile der Tabelle2 in der Spalte2 "x" steht.

                          Ich habe jetzt mal folgendes probiert (ohne Join):
                          PHP-Code:
                          $result mysql_query("SELECT tabelle1.spalteX, tabelle2.spalteY FROM tabelle1, tabelle2 WHERE tabelle1.spalteX = tabelle2.spalteY"); 
                          Das drückt zumindest aus, was ich abfragen möchtre, nur leider bekomme ich nichts ausgegeben, aber auch keinen Fehler.

                          Vielleicht könnt Ihr mir sagen ob ich da auf dem Holzweg bin?

                          Vielen Dank!

                          Kommentar


                          • #14
                            sicher, dass es datensätze gibt, die diese bedingung erfüllen?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Alles ok!
                              Es gab tatsächlich keine entsprechenden Datensätze, jetzt funktioniert es eben ohne JOIN.

                              Vielen Dank für Eure Hilfe, ohne Eure Antworten würde ich sicher immernoch am JOIN rumdoktern...

                              Jogi

                              Kommentar

                              Lädt...
                              X