Verschachtelte Abfrage
am 31.01.2007 19:18:06 von Stephan Dreisbach
Hallo,
in der Tabelle Aufgaben sind Mathematikaufgaben (Aufgabe)
festgehalten, in richtigeAufgaben die Aufgaben mit Datum, die richtig
gerechnet wurden.
Mit
select Nr, Aufgabe from Aufgaben where Nr in (select Aufgabennr from
richtigeAufgaben where Schuelernr='$SchNr' and
TO_DAYS(now())-TO_DAYS(Datum)<2)
frage ich ab, welche Aufgaben in den letzten 2 Tagen richtig gerechnet
wurden.
Wie bekomme ich das Ganze nach Datum sortiert, das nur in
richtigeAufgaben steht?
--
Stephan
Re: Verschachtelte Abfrage
am 31.01.2007 19:34:23 von Helmut Chang
Stephan Dreisbach schrieb:
> Mit
> select Nr, Aufgabe from Aufgaben where Nr in (select Aufgabennr from
> richtigeAufgaben where Schuelernr='$SchNr' and
> TO_DAYS(now())-TO_DAYS(Datum)<2)
>
> frage ich ab, welche Aufgaben in den letzten 2 Tagen richtig gerechnet
> wurden.
>
> Wie bekomme ich das Ganze nach Datum sortiert, das nur in
> richtigeAufgaben steht?
Indem du einen JOIN statt einem Subselect verwendest:
SELECT Nr,
Aufgabe
FROM Aufgaben a
JOIN richtigeAufgaben ra ON a.nr = ra.Aufgabennr
WHERE ra.Schuelernr = '$SchNr'
AND TO_DAYS(NOW()) - TO_DAYS(ra.Datum) < 2
ORDER BY ra.Datum
gruss, heli
Re: Verschachtelte Abfrage
am 31.01.2007 20:29:59 von Stephan Dreisbach
Helmut Chang schrieb:
>Stephan Dreisbach schrieb:
>
>> Mit
>> select Nr, Aufgabe from Aufgaben where Nr in (select Aufgabennr from
>> richtigeAufgaben where Schuelernr='$SchNr' and
>> TO_DAYS(now())-TO_DAYS(Datum)<2)
>>
>> frage ich ab, welche Aufgaben in den letzten 2 Tagen richtig gerechnet
>> wurden.
>>
>> Wie bekomme ich das Ganze nach Datum sortiert, das nur in
>> richtigeAufgaben steht?
>
>Indem du einen JOIN statt einem Subselect verwendest:
>
>SELECT Nr,
> Aufgabe
>FROM Aufgaben a
> JOIN richtigeAufgaben ra ON a.nr = ra.Aufgabennr
>WHERE ra.Schuelernr = '$SchNr'
> AND TO_DAYS(NOW()) - TO_DAYS(ra.Datum) < 2
>ORDER BY ra.Datum
>
>gruss, heli
Danke