folgende tables sind gegeben:
student(matnr, name, addr, tel, alter)
anmeldung(matnr, lvanr, note)
angenommen ich will die namen der studenten wissen, welche zumindest 3 1er hatten.
da gäbs mal diese möglichkeit:
Code:
SELECT name FROM student s, anmeldung a WHERE a.matnr=s.matnr AND note=1 GROUP BY a.matnr, name HAVING count(*)>=3;
wenn ich das richtig verstanden habe bräuchte ich das "name" in GROUP BY eigentlich nicht, in dem ich aber auch nach den namen gruppiere, sorge ich dafür, daß derselbe student nicht mehrmals ausgegeben wird.
für den fall, daß das stimmt, würde ich dassselbe aber auch über DISTINCT erreichen können, oder? also so:
Code:
SELECT DISTINCT name FROM student s, anmeldung a WHERE a.matnr=s.matnr AND note=1 GROUP BY a.matnr HAVING count(*)>=3;
stimmt das so, führen diese beiden anweisungen tatsächlich zum selben ergebnis?