Abfragen mehrerer Tabellen mit NOT

sql_rookie

Grünschnabel
Hallo,
ich nutze SQL erst seit ca. drei Tagen, also falls die Frage total idiotisch ist :
lasst mich leben !

Folgende Situation :
Zwei Tabellen, die eine z.B. ID und Name.
Die andere Gruppe und ID(aus der ersten Tabelle).
Ich will jetzt eine Abfrage machen die mir ausgibt welche
IDs aus der ersten Tabelle nicht in der zweiten vorkommen, eine best. Eigenschaft (z.B. x < 3) haben und diese zählen.

Habe es so versucht :

SELECT COUNT(Tabelle1.ID) FROM Tabelle1 , Tabelle2 WHERE Tabelle1.ID NOT Tabelle2.ID AND Tabelle1.x < 3;

Tabelle1
ID Name x
------------------------------
1 Meier 15
2 Huber 1
3 Schmidt 2

Tabelle2
Gruppe ID
----------------------
1 1

Jetzt hätte ich als Rückgabe der Abfrage gerne eine 2 (Huber u. Schmidt).

Wer kann und will mir helfen, ich bin über jeden Hinweis endlos glücklich!

Grüße

sql_rookie
 
Zuletzt bearbeitet:
Ich will jetzt eine Abfrage machen die mir ausgibt welche
IDs aus der ersten Tabelle nicht in der zweiten vorkommen, eine best. Eigenschaft (z.B. x < 3) haben und diese zählen.

der ansatz war schon auf dem richtigen weg

select count(t1.id) form tabelle1 as t1 left join tabelle2 on t1.id = tabelle2.id where tabelle2.id = NULL and t1.x < 3

@JoelH auch nett geht aber nur ab mysql 4.x
 
Zuletzt bearbeitet:
hmm,

joo Subquerys muss die DB unterstützen, da haste recht. Kommt davon wenn man an Oracle DBs arbeitet. Hab schon lange nix mehr mit MySQL gemacht.
 
select count(t1.id) form tabelle1 as t1 left join tabelle2 on t1.id = tabelle2.id where tabelle2.id = NULL and t1.x < 3

und ich dachte, man braucht diese joins eigentlich gar nicht und könne alles auch mit WHERE lösen.. :) aber das geht ja dann nicht.. ausser mit Subqueries, oder?

ach ja: es heisst übrigens is NULL nicht = NULL ;)
 
und ich dachte, man braucht diese joins eigentlich gar nicht und könne alles auch mit WHERE lösen..

Wie sagt man so schön: wenn mann das nicht gebrauchen könnte, gäbe es das nicht :)
Gerade die Jungs von Mysql sind der Meinung:
Wir brauchen keine Subselects da man alles mit Join
lösen kann (stimmt zwar nicht aber egal)

ach ja: es heisst übrigens is NULL nicht = NULL

Stimmt :) Flüchtigkeitsfehler
 

Neue Beiträge

Zurück