Übereinstimmungen

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

  • Übereinstimmungen

    Hallo,

    ich habe 2 Tabellen

    [COLOR=blue]daten[/COLOR]
    ->id
    ->z1
    ->z2
    ->z3
    ->z4

    [COLOR=blue]temp[/COLOR]
    ->id
    ->g1
    ->g2
    ->g3
    ->g4

    mit folgendem Inhalt

    [COLOR=blue]daten[/COLOR]
    1 | 1 | 2 | 3 | 4
    2 | 2 | 3 | 4 | 5
    3 | 3 | 4 | 5 | 6
    4 | 6 | 7 | 8 | 9

    [COLOR=blue]temp[/COLOR]
    1 | 3 | 4 | 5 | 8

    Ich möchte jede Zeile in daten mit den Inhalt aus temp überprüfen
    (Übereinstimmungen zählen).
    Es sollten nur die Zeilen angezeigt werden die 2 oder mehr übereinstimmungen haben.

    Hier sollte dann folgendes rauskommen:

    Zeile Treffer
    =========================
    1: 2
    2: 3
    3: 3

    Bei meinem Query zählt er zwar richtig, jedoch nur in der ersten Spalte. Es liegt daran
    das die Tabelle temp nur einen Eintrag hat. Hier der Code:

    PHP-Code:
    $result=mysql_query("

    SELECT daten.id AS id,

      (IF(z1=g1 OR z1=g2 OR z1=g3 OR z1=g4, 1, 0) +

       IF(z2=g1 OR z2=g2 OR z2=g3 OR z2=g4, 1, 0) +

       IF(z3=g1 OR z3=g2 OR z3=g3 OR z3=g4, 1, 0) +

       IF(z4=g1 OR z4=g2 OR z4=g3 OR z4=g4, 1, 0))

    AS treffer

    FROM daten LEFT JOIN temp ON temp.id=daten.id

    "
    );



    while (
    $R mysql_fetch_array($result)) {

        echo 
    "$R[id]$R[treffer]\n";


    Was muss ich ändern, das alle 4 Einträge aus
    der Tabelle daten mit dem Eintrag in der
    Tabelle temp verglichen werden?

    Danke für Eure Hilfe!

    Mike

  • #2
    select daten.id, temp.id, (if ...) as treffer from daten, temp having treffer>1

    Damit wird jede Zeile aus "daten" mit jeder Zeile aus "temp" verglichen.
    Soll nur die erste Zeile von "temp" berücksichtigt werden, füg vor der having-Klausel noch "where temp.id=1" ein.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X