phpbar.de logo

Mailinglisten-Archive

[dbs] SQL - Not in

[dbs] SQL - Not in

Robert Pleniger pleniger at rpdev.at
Mit Dez 14 11:09:58 CET 2005


Hallo Stephan

Am 13.12.2005, 10:35 Uhr, schrieb Stephan Beimer <coffeemug at gmx.de>:

> Hallo,
>
> Ich habe 3 relevante Tabellen: pruefung, leistung, studenten
>
> in der Tabelle Pruefung sind alle Prüfungen gespeichert, mit den Attributen:
> zB pnr,pname,studiengang
>
> In der Tabelle Leistung sind die Ergebnisse der Prüfungen gespeichert
> (Status B für bestanden zB)
> lnr,pnr,datum,status,schuelernr
>
> Und in der Tabelle studenten:
> studnr,name,vorname
>
> Nun suche ich immer jeweils zu einem bestimmten Studenten alle Prüfungen,
> die er noch nicht hat
>
> Select * from pruefung where studiengang = 'BWL'
> where pnr not in (
> select pnr from leistung where studnr = '12345'
> )
>
> Kann ich die Abfrage soweit automatisieren, dass ich im äußeren Select-Teil
> die Studnr angeben und er
> dann er erstens die Nr in die innere Abfrage reinnimmt und zweitens den
> dazugehörigen Studiengang ermittelt.
>
> Kann ich mit Variablen (oder so etwas ähnlichem) arbeiten?
> Ich möchte quasi nur die Studnr als Input eingeben.
>
> Ist das möglich
>
Ja

SELECT t1.*, t2.*
 FROM (studenten AS t1
  JOIN pruefung as t2)
   LEFT JOIN leistungen AS t3 ON t1.studnr = t3.schuelernr AND t2.pnr = t3.pnr
WHERE t3.pnr is null
   AND studnr = '12345'

MfG Robert

php::bar PHP Wiki   -   Listenarchive