Mailinglisten-Archive |
Hi Lars, On 2 Nov 2001 at 15:04, Lars Wolff wrote: > Jetzt möchte ich, das mir jeder Kunde einmal ausgegeben wird mit > kunden_id, stammdaten, und alle produkte die er hat. Diese sollen in > EINEM FELD zusammen gesetzt werden: "ANZ \t BEZEICHNUNG \t PRODUKT_ID Alle Produkte in einem String. Das kannste vergessen. Du hast die Produkte-Kunden-Zuordnung zeilenweise organisiert, also bekommst Du auch für jedes Produkt einen Datenssatz. In einer Select Statement kannst Du die Felder eines Datensatzes miteinander konkatenieren, aber nicht mehrere Datensätze. Das geht nur über eine Schleife, die durch alle Datensätze (einer Gruppe (Kunden)) läuft und eine weitere Tabelle oder ein Array aufbaut. Hättest Du die Anzahl der Produkte pro Kunde begrenzt, wäre Dein Wunsch kein Problem, aber die Datenbank "bescheiden" strukturiert ;) SELECT * from kunden LEFT JOIN produkteatkunde ON kunden.kunden_id=produkteatkunde.kunden_id LEFT JOIN produkte ON produkteatkunde.produkte_id=produkte.produkte_id ORDER BY kunden.kunden_id, produkte_produkt_id while NOT EOF() { k = kunden.kunden_id if (k_alt != k) { k_alt = k; INSERT INTO zusammenfassung (kunden_id, kunde, thatsit) VALUES ( kunden.kunden-id, kunden.name & kunden.adresse & ..., '') } UPDATE zusammenfassung SET thatsit = thatsit & produkte.produktname & ", " WHERE kunden_id=kunden.kunden_id } Das ist kein gültiger Code, soll nur die Idee veranschaulichen ! Der Inhalt der Spalte thatsit wächst mit jedem Datensatz um ein Produkt an. Tschö, Igor-- Dipl.-Inform. Oliver Stephan, e-Mail: os_(at)_I-Lab.de I-Lab Productions - August-Niemann-Str.36 - 26203 Wardenburg Internet - Informationssysteme - Vertrieb Tel: 0441-50500780, Fax: 0441-50500781 http://www.I-Lab.de http://www.aerzte-notdienst.de http://www.billiger-fotografieren.de --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive