phpbar.de logo

Mailinglisten-Archive

Komplexe MySQL-Abfrage

Komplexe MySQL-Abfrage

Wojna mysql-de_(at)_lists.bttr.org
Tue, 19 Mar 2002 23:48:48 +0100


Hallo MySQL-Liste!

Ich stehe erneut vor einem für mich unlösbaren Problem und bitte
um eure Hilfe.

Ich möchte für unsere Band in PHP einen Shop programmieren, in
dem ich unsere CDs verkaufe.

Jede CD hat eine eindeutige ProduktID.
Für jeden Titel einer CD soll der Name sowie die Länge aus einer
Tabelle 'Werk' ermittelt und ausgegeben werden.

TABLE Werk
   WerkID bigint(21) NOT NULL auto_increment,
   Titel varchar(255),
   Dauer time,
   [..]

Bei der Auflistung der Titel sollen des Weiteren alle möglichen
verfügbaren Infos zu den Titeln verlinkt werden.

Dazu habe ich die Hilfstabelle Verweis angelegt in der zu jedem Titel
einer CD ein Datensatz existiert.

TABLE Verweis
   ProduktID bigint(21) NOT NULL,
   WerkID bigint(21) NOT NULL,
   TextID bigint(21) NOT NULL,
   Mp3ID bigint(21) NOT NULL,
   VideoID bigint(21) NOT NULL,
   Prio bigint(21) NOT NULL

Wenn z.B ein Text zu einem Titel existiert, so wird die Datensatz-
nummer des Textes (in seiner Tabelle 'Text') von mir in das Feld
TextID der 'Verweis'-Tabelle geschrieben.

TABLE Text
   TextID bigint(21) NOT NULL auto_increment,
   Aktiv enum('Y','N') default 'Y',
   [..]

Im Ergebnisdatensatz soll der Wert von TextID allerdings nur
vorkommen, wenn er in der Tabelle 'Text' auch aktiviert ist,
also Text.Aktiv = 'Y' ist.

Nach dem selben Prinzip soll dies mit 'Mp3' und 'Video' geschehen.

Die Reihenfolge der Titel auf der CD soll per ORDER BY über das
Feld Prio festgelegt werden.

Sicherlich könnte ich viele einzelne Abfragen starten, gerne
hätte ich in PHP aber alles in einem Ergebnisdatensatz.
Ist es überhaupt möglich diese Anfrage in einer einzigen SQL-
Anweisung zu formulieren?

Um eine Lösung wär ich euch sehr verbunden.
Gruß
wojna

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive