Mailinglisten-Archive |
Moin Toby, > Bei einem aktuellen Projekt (Online-Test) habe ich folgende Tabellen, > die miteinander zusammenhängen: > > users > tests > questions > answers > tests_answers > > In "questions" sind Fragen gespeichert, in "answers" die dazugörigen > Antworten: "tests" nimmt einen neuen test auf´, wenn ein user diesen > absolviert (jeder Test besteht aus 20 verschiedenen Fragen, die der > User noch nicht beantwortet hat). tests_answers nimmt die zum Test > gehörenden Antworten auf und Informationen darüber, ob die Antwort > angeklickt war. > > Nun möchte ich (da jeder Test ja nur Fragen enthalte soll, die noch > nicht beantwortet wurden) per SQL nur die Fragen aus questions > bekommen, zu denen in tests_answers kein Eintrag mit einer bestimmten > User_ID steht. Dabei steht die jeweilige User_ID zu den Tests in > "tests" und nicht "tests_answers". Genau so die Question_ID, welche > in "answers" vermekt steht um redundanzen zu vermeiden. Wenn ich Dich recht verstehe, dann haben die questions eine ID, die in answers wiederkehrt. Die UserID wird in der Tabelle tests gespeichert, deren ID es auch in test_answers gibt. worüber werden denn die test_answers mit den questions verknüpft? Welche Informationen befinden sich überhaupt in test_answers? Im Moment stellt es sich mir so dar, dass Deine test_answers aus ID, test_ID, answer_ID besteht. Da mir nun ein paar Infos zu der Beschaffenheit Deiner Tabellen fehlen tippe ich einfach mal so ins blaue: SELECT * FROM questions a LEFT JOIN answers b ON (a.question_ID=b.question_ID) LEFT JOIN test_answers c ON (b.answer_ID=c.answer_ID) LEFT JOIN tests d ON (c.tests_ID=d.tests_ID) WHERE c.answer_ID IS NULL GROUP BY d.User_ID Vielleicht hilfts ja. Ansonsten schick doch noch mal ein paar mehr Infos zu den einzelnen Tabellen. Schöne Grüße, Björn. -- small office solutions info at sosnetz.de - http://www.sosnetz.de -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive