[MySQL] Abfrage o./u. Design-Problem: Simulation Nested Tables

lemats

Grünschnabel
Hallo

Leider weiss ich beim besten Willen nicht, wie ich folgendes Problem lösen soll:
(als Beispiel)

Abbildung von Produkten in einer Datenbank. Produkt hat einen Titel, Beschreibung und Preis. Soweit alle einfach.
Nun soll jedes Produkt in beliebig vielen Sprachen und mit beliebig vielen Währungen (=andere Preise) verfügbar sein. Mit Nested Tables wäre das auch einfach zu realisieren.
Wie aber mache ich das in MySQL, dass ich mit einer einizigen Abfrage den ganzen Record auf einmal zurückbekomme? So Quasi, wie simuliere ich die Nested Tables?

Die Möglichkeit vom Speichern eines Serialisiertem Arrays in ein Datenfeld habe ich mir schon durch den Kopf gehen lassen und wieder verworfen, da ich auch nur einzelne Sprachen (aber auch alle auf einmal) Abfragen möchte (viel zu viele Daten).

Das Design habe ich mir mal so zurechtgelegt:

Produkt
- ID, PRIMARY KEY
- ... (z.B. Hersteller)

Produktdetail
- PrduktFID
- SpracheID
- Titel
- Beschreibung
PrimaryKey(PrduktFID, SpracheID)

Prduktpreis
- ProduktFID
- WaehrungID
- Preis
PrimaryKey(ProduktFID, WaehrungID)

Wie mache ich nun ein Abfrage aller Produkte mit allen Produktedetails und -Preisen, so dass ich pro Produkt nur einen Record habe?
Oder geht das gar nicht und ich muss pro Produkt 3 Abfragen starten?

Wäre echt nett wenn mir jemand weiterhelfen könnte. Irgendwie ist das doch ein Grundsätzliches Problem...

Dankeschön!

Gruss
 
Zuletzt bearbeitet:
SELECT *
FROM Produkte p
JOIN Produktdetail pd
JOIN Prduktpreis pp
WHERE pd.ProdukFID = p.ID
AND pp.ProdukFID = p.ID


so bekommst du zu jedem datensatz von "Produkte" die jeweiligen atribute der anderen tables die mit der FID angesprochen werden.
 
Zurück