Abfrageproblem
MrX
- datenbank
0 Frank (no reg)0 MrX
Hallo,
ich habe zwei Tabellen:
Tabelle A:
Feld 1: Name
z.B.:
Anton
Berta
Cäsar
Tabelle B:
Feld1: Anfang
z.B.:
Ant
Be
Nun möchte ich alle Datensätze der Tabelle A anzeigen, OHNE die Namen, die mit den Buchstaben aus Tabelle B anfangen.
In dem oben genannten Fall möchte ich also nur Cäsar anzeigen.
Ich bräuchte so etwas wie ein NOT LIKE ...% als subselect.
Wer kann mir helfen? Danke!
Hi,
ich habe zwei Tabellen:
Aha, hab ich auch, unter anderem. ;) Und was für eine Datenbank benutzt du? Denn danach unterscheiden sich die Möglichkeiten zur Lösung unter Umständen dramatisch.
Hier mal eine Variante, die zumindest für bzw. auf MS SQL 2005 funktioniert:
DECLARE @A1 Table (
feld1 varchar(50) NOT NULL
)
DECLARE @A2 Table (
feld1 varchar(50) NOT NULL
)
INSERT @A1 (feld1) VALUES ('Anton')
INSERT @A1 (feld1) VALUES ('Berta')
INSERT @A1 (feld1) VALUES ('Cäsar')
INSERT @A2 (feld1) VALUES ('An')
INSERT @A2 (feld1) VALUES ('Ber')
SELECT *
FROM @A1 a
LEFT JOIN @A2 b
ON SubString(a.feld1, 1, LEN(b.feld1)) = b.feld1
WHERE b.feld1 IS NULL
Ich bin mal davon ausgegangen, dass in Tabelle 2 die Länge der Abkürzungen die Länge des Namens in Tabelle 1 nicht übersteigt ... sonst gibt es einen Fehler :)
Gruss
Frank
Danke das klappt!
habe mySQl und mußte nur LEN() durch LENGTH() ersetzen,
Danke!