Ich habe eine Schüler-Tabelle und eine Registrierungstabelle; Ein Student könnte mehrere Registrierungsdatensätze haben, die aktiv oder inaktiv sein können.Einzelne Datensätze aus verknüpften Tabellen zurückholen, die mehrere Datensätze erzeugen können
Ich möchte eine Auswahl erhalten, die einen einzigen Schüler-Datensatz und einen Indikator hat, ob dieser Schüler aktive Anmeldungen hat.
Ich dachte darüber nach, dies in einer Inline-UDF zu tun, die die Studenten-ID in einem Join zur Registrierungstabelle verwendet, aber ich frage mich, ob es eine bessere Möglichkeit gibt, es in einer einzigen Select-Anweisung zu tun.
Das UDF-Aufruf könnte etwa so aussehen:
Select Student_Name,Student_Email,isEnrolled(Student_ID) from Student
Was könnte die Alternative - mit einer SQL-Anweisung - aussehen?
Wenn Sie 1000 Studenten hatten, ist diese Anweisung wie 1001 Abfragen, da sie die Anzahl der Anmeldungen jedes Schülers separat abfragt. – banjollity
Nein, es ist nicht so schlimm. Die Datenbank kann optimieren, besonders wenn student_id der erste Teil eines Registrierungsindexes ist (was ich denke, dass es sein wird). Die Unterabfrage muss nur eine Indexbereichsüberprüfung für den Registrierungsindex durchführen (die Tabelle selbst wird nicht benötigt). –