Auswahlabfrage mit Liste aus zweiter Tabelle als Auswahlkriterium

11/06/2009 - 07:55 von Thomas Gehrmann | Report spam
Hallo NG,
ich bin auf der Suche nach einem SQL-Abfragestring, der folgendes leisten
soll:

Gegeben seien zwei Tabellen:
Tabelle a enthàlt unter anderem eine Spalte "Begriffe"
Tabelle b enthàlt lediglich eine Spalte "Suchbegriffe"
Beide Spalten sind Text-formatiert.

Es soll nun eine Auswahlabfrage erstellt werden, die alle Zeilen aus Tabelle
a auflistet, bei denen in Spalte "Begriffe" irgendeiner der Suchbegriffe aus
Tabelle b enthalten ist.
Groß- und Kleinschreibung soll egal sein, und die Auswahl muss auch bei nur
teilweiser (LIKE) Übereinstimmung erfolgen.

Beispiel:

Tabelle a
[Begriffe]
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Sonnabend
Sonntag

Tabelle b
[Suchbegriffe]
dienst
frei
tag


Gewünschtes Abfrageergebnis:

[Begriffe]
Montag (Like '*tag*')
Dienstag (Like '*dienst*' und Like '*tag*')
Donnerstag (Like '*tag*')
Freitag (Like '*frei*' und Like '*tag*')
Sonntag (Like '*tag*')


Hat jemand eine Idee, wie man so etwas in SQL formuliert?

Viele Dank
Thomas
 

Lesen sie die antworten

#1 Jens Schilling
11/06/2009 - 08:25 | Warnen spam
Hallo, Thomas

Thomas Gehrmann wrote:
Gegeben seien zwei Tabellen:
Tabelle a enthàlt unter anderem eine Spalte "Begriffe"
Tabelle b enthàlt lediglich eine Spalte "Suchbegriffe"
Beide Spalten sind Text-formatiert.



Schon Dein Datenmodell stimmt nicht - es ist nicht normalisert, und führt
deshalb zu dem Bedürfnis Deiner ungewöhnlichen Abfrage.

Erstelle Dir eine dritte Tabelle, die jeweils den primàren Schlüssel aus
Tabelle A und B enthàlt, und Dein Problem ergibt sich, da Du Dein Problem
nun auf Basis einer normalen Abfrage lösen kannst..

Darf ich Dir empfehlen, Dir einmal Michael Zimmermanns Vortrag zum Thema
"Normalisation" von der 8. AEK anzuschauen ?

http://www.donkarl.com/AEK/AEK_Downloads.htm


Gruss
Jens

Ähnliche fragen