nach mehreren verschiedenen Attributen in einer Spalte suchen

NiciB

Erfahrenes Mitglied
Ich habe in etwa folgende Tabellen:

Tabelle Attribute
id
inventar_id
attribut_id

Tabelle Inventar
inventar_id
Bezeichnung


Ich brauch jetzt alle Bezeichnungen aus Inventar die z.B. die Attribute 1,3,5 besitzen.

Dazu muss ich nach mehreren verschiedenen Attributen in einer Spalte suchen.

Das Problem ist, dass ich nicht weiß wie ich nach den Attributen suchen soll.
<I>select*from Attribute where attribut_id=1 and attribut_id=3 and attribut_id=5</I> geht ja nicht (logischerweise). Und wenn ich anstelle von AND das OR verwende, dann liefert es mir auch alle Gegenstände die z.B. nur 1 oder nur 3 besitzen. Es sollen aber nur die geliefert werden die 1, 3 UND 5 besitzen.

Bei Oracle geht das ja einfach mit ALL(), aber wie mach ich das mit mysql 4.0?
 
Hö was willst du genau? Alle Datensätze welche irgendwo in der ID 1, 2 oder 3 haben? Also z.b. auch 172 oder 826? Oder nur genau die ID, also wo die ID 1 oder 2 oder 3 ist?
 
Hi,

Mit dem Operator LIKE solltest du weiter kommen.
ABER:
Das, was du da hast widerspricht der Normalisierung (speziell der 1. Normalform).
Wenn du deine Datenbank richtig designt hättest, hättest du dieses Problem nicht.
Und so wie du das jetzt hast, macht es auch keinen Sinn, die Attribute in eine extra Tabelle zu packen. so würde es auch reichen, wenn sie in der Inventartabelle wären. (Was dann aber immernoch der 1. Normalform widerspricht!)
 
Zurück