Hallo,
ich denke jetzt schon ein paar Tage darüber nach wie das gehen könnte aber was gescheites soll heissen schnell und einfach ist mir nicht eingefallen.
Mein übliches Problem eine Suchfunktion die Produkte aus einer Datenbank liest. Als Beispiel die Suche eines Stichwortes in der Titel-Tabelle. Als Anmerkung am Rand ein Produkt kann mehrere Titel haben.
Der Aufbau ist folgender
ProductKey, ist die Root-Tabelle genau ein Satz pro Produkt
ProductTitle, einthält die Produkttitel mindestens ein Satz pro Produkt
ProductLanguage, keiner, einer, oder viel pro Produkt
Ich will jetzt den Titel ‘Ich kann auch anders’ finden
z.B. so
[font="Fixedsys"]
select *
from ProductKey Key, ProductTitle Title, ProductLanguage Lang
where Key.MyProductNr = Title.MyProductNr and
Key.MyProductNr = Lang.MyProductNr and
Title.TitleText = 'Ich kann auch anders' and
Lang.LanguageCode = 'ger';
[/font]
(Die Suche in der Titel-Tabelle erfolgt per TSearch2 habe ich hier weggelassen da es zu diesem Problem keinen Unterschied macht.)
So nun zum eigentlichen Problem: Jetzt gibt es Dummer weise Produkte die keine Sprache haben z.B. Musik-CDs. Es gibt dann auch keinen Datensatz dafür in der ProductLanguage-Tabelle. Ich möchte auch keine leeren Datensätze dort anlegen weil das andere Tabellen mitgerechnet einige Millionen leere Datensätze in der gesamten DB erzeugen würde.
Ich müsste in diesem Fall die in der ProductTitle Tabelle gefundenen Datensätze die keinen Sprachdatensatz haben und die mit ‘ger’ in meine Ergebnismenge einbeziehen.
Würde mich freuen wenn einer eine Idee hat ich hab grad keine.
Grüße
Alexander