MrX: Abfrageproblem

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!

  1. 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

    1. Danke das klappt!

      habe mySQl und mußte nur LEN() durch LENGTH() ersetzen,

      Danke!