Mailinglisten-Archive |
Dennis Dohle schrieb:
> Hallo Liste,
Tach auch...
>
> vielleicht kann mir jemand schnell bei einer SQL-Abfrage helfen.
> Ich habe drei Tabellen:
>
> Tabelle 1 - "objekte"
> id_objekt, ...
> 1, ...
> 2, ...
>
> Tabelle 2 - "merkmale"
> id_merkmal, ...
> 3, ...
> 6, ...
> 3, ...
> 4, ...
>
> Tabelle 3 - "objekt_merkmal"
> id_objekt, id_merkmal
> 1, 3
> 1, 6
> 2, 3
> 2, 4
>
> Ziel ist es, alle "id_objekte" zu bekommen, bei denen mehrere vorher
> definierte Merkmale zutreffen. Also z.B. wird über eine Suche nach alle
> Objekten gesucht, für denen die Merkmale mit der ID 3 (id_merkmal=3) und der
> ID 6 (id_merkmal=6) zutreffen. Demnach müsste ich irgendwie dann also
> Ergebnis das Objekt mit der ID 1 bekommen. Wenn ich nur nach einem Merkmal
> suche, ist das ja kein Thema (z.B. id_merkmal=3), aber bei zwei oder
> mehreren Kriterien ... hmmm.
Kommt drauf an wo die merkmale herkommen... fest geht:
SELECT id_objekt FROM objekt_merkmal WHERE id_merkmal = 1 OR
id_merkmal = 2 OR id_merkmal =3...
Wenn die id_merkmale als Array vorliegen dann:
$merkmale = implode(",",$arr_id_merkmal);
SELECT id_objekt FROM objekt_merkmal WHERE id_merkmal IN $merkmale;
>
> Jemand eine Lösung für das Dilemma?
> Ich möchte das gerne in einer Abfrage hinbekommen ...
>
>
> Gruß, Dennis
mfG Ronny
>
>
php::bar PHP Wiki - Listenarchive