Ich weiß, dass ich das in der Vergangenheit getan habe und ich kann jetzt nicht an die Lösung denken ... Ich weiß, dass es eine Art voll äußerer Verbindung ist.Gibt eindeutige übereinstimmende und nicht übereinstimmende Zeilen zurück (äußere Verbindung?)
Ich habe 3 Tabellen bekommt:
ACTIVITIES
id name
---+-------------
1 | Basketball
2 | Chess Club
ENROLLMENT
id activity_id person_id
---+-------------+-----------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
ATTENDANCE
id date person_id activity_id
---+-------------+----------+---------------
1 | 2017-01-01 | 1 | 1
2 | 2017-01-01 | 2 | 1
3 | 2017-01-02 | 1 | 1
Ich versuche, die Teilnahme von person_id
zu bekommen, auch wenn die ID nicht für ein Datum existiert:
date person_id
------------+---------------
2017-01-01 | 1
2017-01-02 | null
Hier ist etwas in der Nähe zu dem, was ich denke, ich werde ... brauchen
select date, attendance.person_id
from enrollment
**SOME SORT OF JOIN** attendance on enrollment.person_id = attendance.person_id
where person_id = 1
Aber alles, was ich zurück bekommen kann:
date person_id
------------+---------------
2017-01-01 | 1
2017-01-01 | 1
... wo die Anzahl der Zeilen korrekt ist, aber die Werte falsch sind.
@ yılmaz, weil sie mit Einschreibung verbunden sein würde, wo die 'person_id' existiert und von' activity_id' meine psuedo Abfrage nicht ganz begründet es – Grant