Problem bei SQL-Abfrage

Problem bei SQL-Abfrage

am 06.10.2006 15:10:13 von svens

Hallo,

mit meinen SQL-Kenntnissen komme ich nicht mehr weiter. Vielleicht kann
mir jemand weiterhelfen.

Ausgangslage ist eine mysql-db (4.0) die 3 Tabellen enthält.

In der ersten sind Produkte gespeichert (id, bezeichnung, ...), in der
zweiten sind Bestandteile für diese Produkte gespeichert (id,
bezeichnung ...), in der 3. Tabelle werden die Bestandteile den
Produkten zugewiesen (id, id_produkte, id_bestandteile).

Jetzt möchte ich eine Abfrage erstellen um herauszufinden welche
Produkte gleichzeitig zum Beispiel aus Bestandteil x und Bestandteil y
bestehen.

Wie muss die Abfrage dafür aussehen?

Vielen Dank für Eure Hilfe!

Re: Problem bei SQL-Abfrage

am 06.10.2006 15:13:46 von Christian Kirsch

Am 06.10.2006 15:10 schrieb svens@balcab.ch:
> Hallo,
>
> mit meinen SQL-Kenntnissen komme ich nicht mehr weiter. Vielleicht kann
> mir jemand weiterhelfen.
>
> Ausgangslage ist eine mysql-db (4.0) die 3 Tabellen enthält.
>
> In der ersten sind Produkte gespeichert (id, bezeichnung, ...), in der
> zweiten sind Bestandteile für diese Produkte gespeichert (id,
> bezeichnung ...), in der 3. Tabelle werden die Bestandteile den
> Produkten zugewiesen (id, id_produkte, id_bestandteile).
>
> Jetzt möchte ich eine Abfrage erstellen um herauszufinden welche
> Produkte gleichzeitig zum Beispiel aus Bestandteil x und Bestandteil y
> bestehen.
>
> Wie muss die Abfrage dafür aussehen?

Was hast Du denn probiert und mit welchem Ergebnis?

BTW: Zusätzlich zur Prosa hilft es meistens auch, das Ergebnis von
CREATE TABLE zu posten.

Re: Problem bei SQL-Abfrage

am 06.10.2006 15:43:01 von Thomas Rachel

svens@balcab.ch wrote:

> Hallo,
>
> mit meinen SQL-Kenntnissen komme ich nicht mehr weiter. Vielleicht kann
> mir jemand weiterhelfen.
>
> Ausgangslage ist eine mysql-db (4.0) die 3 Tabellen enthält.
>
> In der ersten sind Produkte gespeichert (id, bezeichnung, ...), in der
> zweiten sind Bestandteile für diese Produkte gespeichert (id,
> bezeichnung ...), in der 3. Tabelle werden die Bestandteile den
> Produkten zugewiesen (id, id_produkte, id_bestandteile).
>
> Jetzt möchte ich eine Abfrage erstellen um herauszufinden welche
> Produkte gleichzeitig zum Beispiel aus Bestandteil x und Bestandteil y
> bestehen.
>
> Wie muss die Abfrage dafür aussehen?

Du mußt die 3. Tabelle (Zuweisung) 2x joinen:

SELECT j1.id_produkte FROM Tab3 j1 JOIN TAB3 j2 USING (id_produkte) WHERE
j1.bestandteile=x AND j2.bestandteile=y

Wenn Du x und y nicht als ID, sondern als Bezeichnung o.ä. vorliegen hast,
oder wenn Du das zusammengesetzte Produkt gerne mit Namen bezeichnet haben
möchtest, kannst Du diesen Query noch erweitern.


Thomas
--
Die Verwendung von mehreren Ausrufezeichen macht die Aussage nicht
ausrufender sondern ausufernder. [Michael Bauer in dnq]