ihr habt mich leider noch nicht ganz verstanden:
der suchstring über den ich beispielsweise suche ist s = 'wie geht %'
nochmal meine einträge aus t1:
f1 = 1, f2 = 2, id = 2
f1 = 1, f2 = 1, id = 1
f1 = 1, f2 = 3, id = 3
f1 = 2, f2 = 2, id = 5
f1 = 2, f2 = 1, id = 4
f1 = 3, f2 = 2, id = 6
f1 = 3, f2 = 3, id = 7
und aus t2:
id = 1, wert = 'wie '
id = 2, wert = 'geht '
id = 3, wert = 'das?'
zuerst müsste t1 in teilmengen zerlegt werden, wobei für JEDE teilmenge T gilt, dass die einträge in T ALLE den gleichen wert f1 haben => in diesem beispiel müsste es 3 teilmengen geben; T1: eintrag 1-3, T2: eintrag 4-5, T3: eintrag 6-7..soweit klar, oder?
für jede teilmenge T müsste jetzt der sogenannte "kombinierte string" gebildet werden. dieser bildet sich wie folgt:
schritt 1: man sortiere die einträge aus T nach dem feld id
schritt 2: jetzt suche man zu jedem eintrag x aus T das entsprechende gegenstück y aus tabelle t2 und zwar über den fremdschlüssel t1.f2; die gesamtheit aller y sei T'; die einträge in T' werden NICHT neu sortiert, sondern sie BLEIBEN sortiert nach t1.id (siehe schritt 1)
schritt 3: man konkateniere die felder 'wert' aller einträge aus T'
=>der "kombinierte string" von T1 wäre 'wie geht das?', der von T2 'wie geht ' und der von T3 'geht das?'
=>für T1 und T2 trifft die suchbedingung also zu, da
-'wie geht das?' is like 'wie geht %'
und
-'wie geht ' is like 'wie geht'
DESWEGEN soll mir also der
sql-
query, den ich suche also die vereinigung von t1.f1 = 1 und t1.f1 = 2 zurückgeben
jetzt verstanden?
danke,
martin
Zitat:
Letztenendes ist das nämlich eine sequentielle Suche innerhalb der
DB (alle Datensätze müssen angefasst werden).
Das hab ich mir gedacht, dass der Einwand kommt. Aber es handelt sich hierbei um einen
Query der nur alle Jubeljahre mal ausgeführt werden soll, und da kann man auch mal ein bisschen warten
Zitat:
Was willst Du eigentlich erreichen?
Da müsste ich soweit ausholen, ich glaub da schlaft ihr ein.
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.