MySQL: Verzwicktes Query

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

  • MySQL: Verzwicktes Query

    Hi Leute,

    hab da ein Problem mit ner Abfrage die ich einfach nicht hinbekommen will:
    Gegeben sind die beiden folgenden Tabellen:


    Code:
    table1
    	id		title
    =================================
    |	1	|	name1	|
    --------------------------------|
    |	2	|	name2	|
    --------------------------------|
    |	3	|	name3	|
    ---------------------------------
    
    table2
    	pid	 	field_name		data
    =================================================================
    |	1	|	bereich		|	wounds		|
    -----------------------------------------------------------------
    |	1	|	kategorie	|	pigs		|
    -----------------------------------------------------------------
    |	2	|	bereich		|	wounds		|
    ----------------------------------------------------------------
    |	2	|	kategorie	|	ruminants	|
    -----------------------------------------------------------------
    |	3	|	bereich		|	claws		|
    -----------------------------------------------------------------
    |	3	|	kategorie	|	pigs		|
    -----------------------------------------------------------------
    Angezeigt werden sollen:
    table1.id und table1.title bei denen folgendes zutrifft:
    Code:
    (table2.field_name='bereich' AND table2.data='wounds')
    AND
    (table2.field_name='kategorie' AND table2.data='pigs')
    Das gewünschte Ergebnis bei diesem Beispiel wäre:
    Code:
    numrows: 1
    #1	id: 1, title: name1
    Das Problem ist die zweite Bedingung die eintreten muss, die liegt ja immer in ner anderen Zeile als die erste die zutrifft.
    Dass beide Bedingungen
    (table2.field_name='bereich' AND table2.data='wounds')
    AND
    (table2.field_name='kategorie' AND table2.data='pigs')
    innerhalb einer Zeile zutreffen, kann nie sein, deshalb krieg ich bei querys mit der zweiten bedingung immer 0 Ergebnisse.

    Subquerys sind auf Grund einer MySQL Version <4.1 nicht möglich(4.0.20)

    Ich hoffe ihr könnt mir da weiterhelfen

    Danke und viele Grüße

    octane

  • #2
    wie wär's mit OR statt AND?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      nee, OR bringt nix, beide Bedingungen müssen, nicht können zutreffen....

      Trotzdem danke für den Vorschlag!

      Kommentar


      • #4
        Die 2. Tabelle muss weiter normalisiert werden...


        ausserdem _können_ beide Bedingungen gar nicht gleichzeitig eintreten, sondern nur nacheinander, und dann hast du 2 ergebnisse

        also irgendwas ist bei deiner Planung schiefgegangen

        versuch einfach mal die 2. tabelle zu normalisieren, d.h.

        pid bereich data
        pid kategorie data

        dann kannst du bequem in eine ergebniszeile die 2 sachen einer id zuordnen

        alles andere macht aus meiner bescheidenen sicht der dinge heraus wenig sinn, selbst wenn unterabfragen möglichwären


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          es kann aber immer nur eine zutreffen ... dehalb doch OR ...
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            an der struktur gibt es leider nichts zu rütteln, trotzdem danke für eure vorschläge...

            Kommentar


            • #7
              hmm,

              an der struktur gibt es leider nichts zu rütteln, trotzdem danke für eure vorschläge...
              wenn du OR benutzt, erhälts du doch die datensätze, die das AND erfüllen würden, jeweils zwei mal!? wieso fragst du diese eigenschaft nicht einfach ab?
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                Original geschrieben von octane
                an der struktur gibt es leider nichts zu rütteln, trotzdem danke für eure vorschläge...
                Und an der Logik auch nicht ... beide Bedingungen für einen DS können einfach nicht zutreffen ... das sollte selbst für Dich einsehbar sein ...

                Also: INNER JOIN ... 2 mal ... !
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar

                Lädt...
                X