[MySQL 3.23.X] mysql Abfrage. Ich checks nicht.

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

  • [MySQL 3.23.X] mysql Abfrage. Ich checks nicht.

    Hallo allerseits

    Steh irgendwie aufm Schlauch. Es geht um zwei mysql-Abfragen.

    Ich habe eine Tabelle, in der Käufe gespeichert werden. Dort wird beispielsweise die Kundnennummer des Käufers eingetragen (kid) und die Geschäftsnummer des Geschäftes, bei dem der Kunde gekauft hat (gid).

    Nun will ich eine Abfrage machen, die mir eine Liste aller Kunden ausgibt, die bisher nur bei einem bestimmten Geschäft (z.B. gid='10') gekauft haben.

    Ich müsste also schauen, wo sind Käufe mit gid=10 und dann nur diese käufe filtern, wo die kid nicht noch bei anderem kauf mit gid!=10 beteiligt ist.

    Außerdem brauch ich dann noch eine Abfrage, die mir die Kunden ausgibt, die zwar schon Käufe getätigt haben, aber noch nie bei einem bestimmten Geschäft.

    Also schauen, bei welchen Kunden ausschliesslich Käufe vorhanden sind, die nicht mit z.B. gid=10 getätigt wurden.

    Bin fast am verzweifeln. Hab schon etliche Varianten versucht, aber entweder hab ich voll den Denkfehler oder die Abfragen sind schwerer, als sie mir zunächst erschienen sind.

    Wäre echt toll, wenn ihr mir da helfen könntet.

    Danke schon mal
    Lord Chris

  • #2
    hat schon bei 10 gekauft:
    select k.* from kunde k, kauf u
    where u.gid=10 and u.kid=k.kid
    group by k.kid


    hat noch nicht bei 10 gekauft:
    select k.* from kunde k
    left join kauf u on u.kid=k.kid
    where u.gid=10 and u.kid is null
    group by k.kid


    hat schon bei 10 gekauft und sonst nirgends:
    select k.* from kunde k, kauf u
    left join kauf v on v.kid=k.kid
    where u.gid=10 and u.kid=k.kid and v.gid<>10 and v.kid is null
    group by k.kid

    Zuletzt geändert von Titus; 16.11.2003, 09:37.
    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


    • #3
      Hallo

      Super! Vielen, vielen Dank für die Lösung!

      Und sorry für meinen anfänglich falschen Post.

      mfg Lord Chris

      Kommentar

      Lädt...
      X