schildi: mysql - selfjoin abfrage

hallo.

ich steh grad aufm schlauch.

ich hab ne tabelle mit den spalten
isin, option_id, platform_id
(alle drei zusammen bilden einen zusammengesetzten primärschlüssel)

gegeben habe ich eine platform_id und eine option_id.
nun brauche ich eine abfrage, die mir alle isin's liefert für die gegebene platform_id und option_id, welche in derselben tabelle NICHT noch einmal mit anderer platform_id vorkommen.

hoffe das problem ist verständlich...

  1. yo,

    SELECT a.isin
    FROM tabelle AS a
    WHERE a.Option_id = Wert1 AND a.platform_id = Wert2
    AND a.isin NOT IN
    (SELECT b.isin FROM tabelle AS b WHERE b.platform_id <> Wert2)

    Ilja

    1. yo,

      SELECT a.isin
      FROM tabelle AS a
      WHERE a.Option_id = Wert1 AND a.platform_id = Wert2
      AND a.isin NOT IN
      (SELECT b.isin FROM tabelle AS b WHERE b.platform_id <> Wert2)

      Ilja

      Hallo,

      Mit ner verschachtelten select-konstruktion hätt ichs auch hinbekommen ;). nur muss ich das ganze mit nem join oder so hingriegen. verwende php/mysql. und mysql kennt in der version die mir zu verfügung steht noch keine verschachtelten abfragen.

      noch ne idee?

      1. yo,

        Mit ner verschachtelten select-konstruktion hätt ichs auch hinbekommen ;). nur muss ich das ganze mit nem join oder so hingriegen.

        dann wäre es das nächste mal sehr gut, wenn du uns diese wichtige information auch gleich geben würdest oder zumindestens deine version nennst. mit einem JOIN alleine ist das meiner wissens nicht möglich. aber vielleicht kann man mit GROUP BY ein wenig tricksen.

        SELECT a.isin
        FROM tabelle AS a, tabelle AS b
        WHERE a.Option_id = Wert1 AND a.platform_id = Wert2
        AND a.isin = b.isin AND a.Option_id = b.Option_id
        GROUP BY a.isin
        HAVING COUNT(*) = 1

        hatte keine möglichkeit, das auszuprobieren. ein wenig fein-tuning kann deshalb durchaus nötig sein.

        Ilja

        1. dann wäre es das nächste mal sehr gut, wenn du uns diese wichtige information auch gleich geben würdest oder zumindestens deine version nennst. mit einem JOIN alleine ist das meiner wissens nicht möglich.

          sorry. ja.
          Vielen dank für den Tip. Having hatte ich schon völlig vergessen...

          1. yo,

            nur der neugier wegen, funktioniert die abfrage den überhaupt ?

            Ilja