none
Abfrage über 2 Tabellen RRS feed

  • Frage

  • Hallo, ich habe eine Tabelle "Player" mit den Feldern pid(int, PS), pname(varchar(50), parameter(int) ...

    Die zweite Tabelle "Offline" hat folgende Felder oid(int, PS), pid(int), pname(varchar(50).

    Ich brauche nun eine SQL-Select-Abfrage, welche aus der Tabelle "Player" alle Player mit dem parameter=1 abfragt. Diese dürfen aber nicht in der Tabelle "Offline" sein. Wie kann ich das machen?

    Ich hatte folgendes versucht - ohne mit dem gewünschten Resultat:

    select player.pid,player.pname from player, offline where player.parameter=1 and player.pid<>offline.pid

    Wie gesagt, so funktioniert es nicht. Könnt ihr mir hier weiterhelfen?

    Gruß

    Rene

     

    Sonntag, 6. Februar 2011 23:52

Antworten

  • Hallo Rene,

    da würde mir folgende Variante einfallen:

    SELECT ...
    FROM   Player
    WHERE  parameter = 1
    AND    pid NOT IN ( SELECT DISTINCT pid FROM [Offline] )

    Es geht zwar sicherlich auch anders, aber wenn Du keine Daten aus Offline benötigst (also nur darauf abstellst, das pid nicht in dieser Tabelle vorkommt), wäre obiges ggfs. die sinnvollere Variante. (Alternativ mit NOT EXISTS anstelle von NOT IN)

    Montag, 7. Februar 2011 07:16
    Moderator