fanta5: Wie sag ichs mysql?

Hallo,

wie geht sowas in mysql:

SELECT  
a.spalte  
FROM  
table1 a  
Join table2 b ON a.ID=b.ID  
JOIN table3 c ON a.ID= b.ID  
WHERE  
a.spalte1 = 0 AND  
b.spalte2 = 1 AND  
[clear_on]kein Vorkommen der ID in Spalte3 der table3[clear_off];

Wie geht das?

Gruß, fanta5

  1. Nochmal neu:

    Wie sag ich mysql das:

    SELECT
     a.spalte
     FROM
     table1 a
     Join table2 b ON a.ID=b.ID
     JOIN table3 c ON a.ID= b.ID
     WHERE
     a.spalte1 = 0 AND
     b.spalte2 = 1 AND
     a.spalte10 = 555 //(das ist die ID)
     [clear_on]kein Vorkommen der ID555 in Spalte3 der table3[clear_off];

    Wie geht das?

    Gruß, fanta5

  2. Hi!

    [clear_on]kein Vorkommen der ID in Spalte3 der table3[clear_off];[/code]
    Wie geht das?

    Was clear_on/off sein soll, entzieht sich meiner Kenntnis, aber suchst du vielleicht nur ein Ungleich? <> und != oder NOT/! ausdruck
    Ansonsten beschreib bitte in Worten, was du anstellen möchtest.

    Lo!

    1. Ansonsten beschreib bitte in Worten, was du anstellen möchtest.

      SELECT
       a.spalte
       FROM
       table1 a
       Join table2 b ON a.ID=b.ID
       JOIN table3 c ON a.ID= b.ID
       WHERE
       a.spalte1 = 0 AND
       b.spalte2 = 1 AND
       a.spalte10 = 555  AND //(555 ist die ID)
       [clear_on]kein Vorkommen der ID555 in Spalte3 der table3[clear_off];

      heißt:

      suche a.spalte
      aus tabelle 1
      wo
      a.spalte1 = 0 ist und
      b.spalte2 = 1 ist und
      a.spalte10 der ID555 entspricht und
      die ID555 in der Spalte3 der kompletten Tabelle 3 nicht vorkommt.

      Gruß, fanta5

  3. moin,

    ich vermute mal hier liegt wieder mal der falsche ansatz joins benutzen zu wollen, um datensätze auszuschließen. was du eher brauchst sind unterabfragen verknüpft mit EXISTS und NOT EXISTS:

    SELECT a.spalte
    FROM table1 a
    WHERE a.spalte1 = 0
    AND EXISTS (SELECT NULL
                FROM table2 b
                WHERE b.ID = a.ID
                AND  b.spalte2 = 1
               )
    AND NOT EXISTS (SELECT NULL
                    FROM table3 c
                    WHERE c.ID = a.ID
                   )
    ;

    merke: Joins sind böse.....

    Ilja

    1. moin,

      ich vermute mal hier liegt wieder mal der falsche ansatz joins benutzen zu wollen, um datensätze auszuschließen. was du eher brauchst sind unterabfragen verknüpft mit EXISTS und NOT EXISTS:

      Danke für den Hinweis, Ilja.
      Damit habe ich mir die richtige Lösung basteln könbnen.
      Gruß, f5