[MySQL]Feld mit mehreren Werten....

S

Spinhx

Hallo,

ich habe folgendes Problem:
Ich habe eine Tabelle DVD, die aus den Werten ID, Titel,......, und Tonformate besteht. Desweiteren habe ich eine Tabelle Tonformate, die aus den Werten ID und Namen besteht.

Beispieldatensatz DVD
ID: 1
Titel: Schöner Film
.....
Tonformate: 1,2

Beispieldatensätze Tonformate
ID: 1
Name: Deutsch DD 5.1
ID: 2
Name: Englisch DD5.1

Ich möchte nun erreichen, das er mir bei einer Abfrage des Datensatzes mit ID 1 der Tabelle DVD unter Tonformate: Deutsch DD 5.1, Englisch DD5.1 ausgibt. Wie erreiche ich das?

Meine Lösung:
SELECT
Tonformate.Name
FROM
DVD, Tonformate
WHERE
Tonformate.ID = DVD.Tonformate;

gibt nur den jeweils ersten Wert des Feldes aus, also im Beispiel: Deutsch DD 5.1

Weiss jemand Rat?

Gruß
Spinhx

PS: Schon einmal Danke für Eure Mühen.
 
Die Werte werden nicht als zwei Ziffern interpretiert, sondern als eine Zahl.

Am einfachsten ist es, wenn Du sie in 2 Variablen aufsplittest: DVD.tonformate1 und DVD.tonformate2
Dann kannst Du die Tonformate wie folgt ausgeben lassen:
Code:
     SELECT
     Tonformate.Name, DVD.Tonformate1, DVD.Tonformate2
     FROM  DVD, Tonformate
     WHERE  Tonformate.ID = DVD.Tonformate1
   OR Tonformate.ID = DVD.Tonformate2 ;

Hoffe, ich konnte Dir helfen.
 
Ersteinmal Danke für Deinen Vorschlag ptolein!

So wie ich es vorhatte, ist es wohl nicht per MySQL allein zu lösen. Unter zu Hilfenahme der PHP Funktionen Implode und Explode wäre es zwar möglich gewesen, aber mir zu kompliziert. Deshalb habe ich es jetzt mit Hilfe einer 3. Tabelle gelöst, in der die Zuordnungen der einzelnen Tonformate zum Film angegeben sind. Das Feld Tonformate wurde somit aus der Tabelle DVD entfernt.

Die Tabellen haben jetzt folgende Struktur:
DVD ( ID, Titel, ......)
Ton ( ID, Name)
DVD_TON (ID, ID_DVD, ID_TON)

Ich denke, das diese Struktur mehr Sinn macht, da es so keine leeren Datenfelder gibt und die Tabelle übersichtlicher bleibt (bei Untertiteln über 20 neue Felder). Pro Merkmal (Ton, Untertitel, Bildformat) entstehen jetzt allerdings 2 neue Tabellen (Merkmal & Zuordnung zur DVD).

Gruß
Spinhx
 
Morgen Sphinx,

kannst Du mal den Beitrag als erledigt abhaken? Das kann nur der Author machen. Unten rechts git es einen Button "Status nicht erledigt" oder so ähnlich, den drücken, dann gibt es einen Haken davor ;)

Bye
 

Neue Beiträge

Zurück