Announcement

Collapse
No announcement yet.

Korrektes WHERE-Statement

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Korrektes WHERE-Statement

    Hi zusammen,

    ich würde gerne in einem WHERE Statement drei Bedingungen zusammenfassen und stehe gerade auf dem Schlauch. Zum Hintergrund:

    Ich habe eine Tabelle, bei der ich eine Spalte fieldname habe und eine dazugehörige Spalte namens fieldvalue. In einem WHERE Statement möchte ich nun drei fieldnames einschränken und alle sollen den fieldvalue 1 haben:


    where (fieldname = 'sample_A' AND fieldvalue = '1') AND (fieldname = 'sample_B' AND fieldvalue = '1') AND (fieldname = 'sample_C' AND fieldvalue = '1')

    Ich möchte eingrenzen, dass bei allen drei fieldnames in der Spalte fieldvalue eine '1' stehen muss.

    Aber funktioniert leider nicht wie ich es gerade versuche...

    Weiß jemand Abhilfe?

  • #2
    So wie du das zeigst ist das sinnlos und kann nicht funktionieren.
    In dem Beispiel wird 3x auf 2 Spalten abgefragt.
    fieldname kann nicht gleichzeitig sample_A und sample_B und sample_C sein.

    Bei UND-Verknüpfungen sind Klammern obsolet.
    Vermutlich meinst du
    Code:
    where (fieldname = 'sample_A' OR fieldname = 'sample_B' OR fieldname = 'sample_C') AND fieldvalue = '1'
    oder
    Code:
    where fieldname IN('sample_A','sample_B','sample_C') AND fieldvalue = '1'
    Christian

    Comment


    • #3
      ok, verstanden. Alle 3 fieldnames gehören zu je einer customer_id - habe ich nicht dazu gesagt. Das WHERE-Statement soll die customer eingrenzen, bei denen alle 3 fieldnames (sample_A, sample_B und sample_C) den fieldvalue 1 haben

      Comment


      • #4
        Code:
         
         where fieldname IN('sample_A','sample_B','sample_C') AND fieldvalue = '1' AND customer_id='...'
        Christian

        Comment


        • #5
          Ich glaube das reicht noch nicht ganz Christian. Vermutlich meint er sowas:
          Code:
           
           where fieldname IN('sample_A','sample_B','sample_C') AND fieldvalue = '1' group by customer_id having count(*) = 3
          Wobei man das Statement ein bisschen mit Vorsicht genießen sollte, weil man sich implizit darauf verlässt, dass immer nur 3 Datensätze raus kommen.

          Comment

          Working...
          X