Ich habe die Tabellen: Users(id,name,...)
, Knowledge(id,name,...)
und Courses(id,name....)
. Jeder Benutzer verfügt über mehrere "Kenntnisse" (Benutzer- und Wissensverknüpfungen nach Typ ManyToMany). Zum Beispiel Benutzer "Benutzer1" haben 2 Wissen "1" und "2". Kurs auch Verknüpfung mit Wissen nach Typ ManyToMany. Aber Wissen in diesem Fall ist Voraussetzung. Zum Beispiel erfordert der Kurs "Kurs 1" das Wissen "1" und "2" und der Benutzer kann für diesen Kurs zugreifen. Kurs "Kurs 2" benötigt Kenntnisse "1" und "3", und Benutzer haben keinen Zugang für diesen Kurs.Wie schreibe ich richtige SQL-Anfrage für meine Aufgabe
Ich möchte korrekte SQL-Befehl schreiben, die alle Kurse zurückgegeben, die Benutzer erhalten können. Ich benutze PostgresSQL. Entschuldigung für mein schreckliches Englisch.
habe ich versucht, diese SQL-Befehl für den Kurs und Wissen verbinden:
select c.id as "Course id", k.requiredknowledge_id from course as c inner join courses_required_knowledges as k on k.course_id = c.id;
einen ähnlichen Befehl für Benutzer und Wissen verbinden.
select u.id as "User id", k.knowledge_id from user_info as u inner join users_knowledge as k on k.userInfo_id = u.id where u.id = 1;
Aber ich verstehe nicht, wie man „combain“ diese Befehle für get Ergebnis
Bitte zeigen Sie, was Sie bisher versucht haben. – Serg
Bearbeiten Sie Ihre Frage und geben Sie Beispieldaten und gewünschte Ergebnisse an. Kennzeichnen Sie die Frage auch mit der von Ihnen verwendeten Datenbank. –
ich denke, vielleicht Concat Spalten Werte (Gruppe von) und vergleichen Sie –