Günther S: MySQL: SELECT / JOIN / IN

Hallo,

ich möchte eine kleine Suchfunktion schreiben, die mir falls möglich die gewünschten Ergebnisse mit einer einzigen Datenbankabfrage zurückgibt.

Folgende Situation:

table customers

+-----+----------+
| id  | name     |
+-----+----------+
| 1   | Meier    |
| 2   | Schmidt  |
+-----+----------+

table customers_products

+-----+--------------+-------------------+
| id  | customer_id  | product           |
+-----+--------------+-------------------+
| 1   | 1            | Reifen            |
| 2   | 1            | Scheibenwischer   |
| 3   | 1            | Motoröl           |
...
+-----+--------------+-------------------+

Die Verknüpfung der beiden Tabellen dürfte selbsterklärend sein.
Ich möchte nun beispielhaft alle Kunden auslesen, die "Meier" heißen und zu denen ein Produkt-Eintrag "Reifen" besteht.

Falls möglich, möchte ich das natürlich (aus Performancegründen) ohne Subquerys lösen. Hat jemand einen Denkanstoß / passenden Link im MySQL-Manual für mich?

Gruß,
Günther

  1. Hallo

    table customers
    table customers_products

    Ich möchte nun beispielhaft alle Kunden auslesen, die "Meier" heißen und zu denen ein Produkt-Eintrag "Reifen" besteht.

    wo ist das Problem? Ein einfacher INNER JOIN und eine WHERE-Klausel mit einer logischen UND-Verknüpfung zweier Bedingungen.

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      arghs, danke und sorry für die dumme Frage.

      Gruß,
      Günther

  2. Hallo,

    ich habe vorhin beim Eingangspost wohl irgendwie etwas anderes geschrieben, als ich eigentlich im Kopf hatte. Die eigentliche Problematik liegt darin, dass ich nicht nur nach einem Produkt suchen möchte, sondern nach beliebig vielen. D.h. der Kunde soll Meier heißen _und_ (z.B.) Reifen UND Motoröl gekauft haben. Natürlich könnte man das prinzipiell auch über INNER JOIN lösen und dann schauen, bei welchen Kunden es eben alle entsprechenden, resultierenden Datensätze gibt. Lieber möchte ich das aber gleich von MySQL regeln lassen - ist das möglich?

    Gruß,
    Günther

    1. Hallo Günther,

      ich habe vorhin beim Eingangspost wohl irgendwie etwas anderes geschrieben, als ich eigentlich im Kopf hatte. Die eigentliche Problematik liegt darin, dass ich nicht nur nach einem Produkt suchen möchte, sondern nach beliebig vielen. D.h. der Kunde soll Meier heißen _und_ (z.B.) Reifen UND Motoröl gekauft haben.

      hilft Dir dieses Archivposting weiter?

      Freundliche Grüße

      Vinzenz