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