Vergleich von 2 oder mehr Einträgen innerhalb eines Queries

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

  • Vergleich von 2 oder mehr Einträgen innerhalb eines Queries

    Hallo,

    ich hab folgende Situation:

    mal als Beispiel:
    Eintrag 1:

    feld1=14
    feld2=15

    Eintrag 2:

    feld1=15
    feld2=14


    und das eben noch n paar mal häuffiger.

    Nun möchte ich im Query schauen, ob so ein "match" besteht. Wenn ja dann soll aus einer anderen tabelle eine ID ausgelesen werden, die nicht mit feld1 oder feld 2 identisch ist :-)

    Wie machen ?

    Habs schon versucht mit Left ourter Joins und allem möglichen , komme aber nicht weiter.

    Weiter gehts mit Problemen:

    Es kommt natürlich öfter vor, das es sollche gekreuzten Übereinstummungen gibt.. diese sollen natürlich alle berücksichtigt werden.
    Zuletzt geändert von ^EckSteiN^; 01.03.2005, 14:54.

  • #2
    tabelle1.feld1 = tabelle2.feld2 AND tabelle1.feld2 = tabelle2.feld1
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Ich sollt mal die Äpfel von den Augen nehmen .. danke

      Kommentar


      • #4
        Hm war n Ansatz aber ich kam dann nicht mehr weiter...
        Ich habs mal detaillierter:

        Dump tabelle der matches:


        CREATE TABLE `matches` (
        `id` int(11) NOT NULL auto_increment,
        `matched_1` int(11) NOT NULL default '0',
        `matched_2` int(11) NOT NULL default '0',
        `matched` tinyint(4) NOT NULL default '0',
        PRIMARY KEY (`id`)
        ) TYPE=MyISAM;


        matched_1 = der, der voted

        matched_2 = der gevotete

        matched = status0 = nein, status1 = "ja", status 2 tritt ein, wenn der gegenüber ebenfalls ja gestimmt hat = match entstanden


        Es wird nun eine UserID aus der usertabelle gesucht bei der folgende Fälle in tabelle "matched" eintreten:

        1. UserID darf nicht die $loggedin_uid (eingeloggte userID) sein.

        2. UserID darf nicht matched_2 sein, wenn matched_1=$loggedin_uid.und matched=0,1 oder 2

        3. UserID darf nicht matched_1 sein, wenn matched_2=$loggedin_uid und matched=2



        ich glaub das sind dann alle möglichkeiten

        wie sollte ein query aussehen ? ... Falls das Problem einer lösen kann.

        ps.. ja ch habs selber schon probiert.. seit gestern Mittag. Mit Teilwerfolgen, die aber jedesmal eine der andern möglichkeiten kategorisch ausschloss.

        Kommentar


        • #5
          1. usertabelle.id != matches.$loggedin_uid

          2. usertabelle.id != matches.matched_2 AND matches.matched_1=$loggedin_uid AND matches.matched IN (0, 1, 2)

          3. usertabelle.id != matches.matched_1 AND matches.matched_2=$loggedin_uid matches.matched = 2

          =>
          (usertabelle.id != $loggedin_uid)
          AND
          (usertabelle.id != matches.matched_2 AND matches.matched_1=$loggedin_uid AND matches.matched IN (0, 1, 2))
          AND
          (usertabelle.id != matches.matched_1 AND matches.matched_2=$loggedin_uid matches.matched = 2
          )

          So?
          Irgendwie *g*
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Irgendwie bestimmt :-)
            Funzt so aber ebenfalls nicht.... funzt garnicht mehr, er bekommt 0 results :-D


            Eventuell liegts am Join ?

            Wüsste da z.b. nicht wat ich da joinen soll und vor allem wie also ON (was) :-D
            Zuletzt geändert von ^EckSteiN^; 01.03.2005, 17:37.

            Kommentar


            • #7
              Überall da, wo die ID des Benutzers stehen könnte

              1 x in der Benutzertabelle
              2 x in der Matchtabelle

              => Du musst die Benutzertabelle zweimal einbinden
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Eh wie 2 mal einbinden ? Wie meinst das genau ?

                Kommentar

                Lädt...
                X