Moin,
ich hab ein Problem... - evtl. bin ich auch einfach nur zu blöd grad...
Ich habe zwei Datenbanktabellen, sagen wir Kunde und Bücher (um das ganze mal auf nen Verständliches Szenario zu bringen
).
In der Tabelle Kunde sind die Kundendaten gespeichert, sowie die Daten welche Bücher ein Kunde ausgeliehen hat.
Jeder Kunde darf maximal 3 Bücher entleihen, dafür gibt es drei Spalten, Buch1, Buch2 und Buch3.
In der Büchertabelle sind eben die Daten des Buches gespeichert.
Jetzt hinterlege ich in der Kundentabelle in den entsprechenden Spalten die ID des Buches, welches er entliehen hat - jede Spalte kann also ggf. auch leer sein.
Das Problem, was ich grad irgendwie nicht gelöst bekomme, ist wie ich die ID der Bücher z.B. auf den Titel übersetzt bekomme...
Für eine einzelne der Spalten hab ich folgendes gemacht:
SQL-Code:
Select A.Kundennummer, B.Buchtitel
from Kunden A, Buecher B
where A.Kundenummer = 0815
AND A.Buch1 = B.ID
Um direkt zwei Spalten zu übersetzten habe ich (testweise) dann nochmal Buecher reingepackt, also
SQL-Code:
Select A.Kundennummer, B.Buchtitel, C.Buchtitel
from Kunden A, Buecher B, Buecher C
where A.Kundenummer = 0815
AND A.Buch1 = B.ID
AND A.Buch2 = C.ID
das geht zwar noch, aber dauer schon ewig (die Tabellen sind nicht gerade klein). Auf diese Weise alle 3 Spalten gleichzeitig übersetzen zu wollen macht aber der
SQL-Server schon nicht mehr mit...
Hab mir dann gedacht, klar, ich mach ne Select-Abfrage über die drei einzelnen Abfragen, sprich
SELECT * from (UbersersetungA) A, (ÜbersetzungB) B, (ÜbersetzungC) C
(ich weiß, dass ich dann 3x die Kundennummer habe, das ist nur zur Verkürzten Darstellung hier)
Leider funktioniert das nur, wenn auch wirklich 3 Bücher entliehen sind. Ist einer der Einträge "null", dann bekomme ich gar keine Zeile zurück.
Kann mir da evtl. jemand nen Tip geben, wie ich auch die nen Ergebnis bekomme, wenn eine der Spalten "null" ist?
Brauch halt an sich etwas, das hinterher so aussieht:
Kundennummer | Buch1 | Buch2 | Buch3
Liebe Grüße
Mongfice