phpbar.de logo

Mailinglisten-Archive

SQL-Problem

SQL-Problem

Björn Platzen bplatzen at sosnetz.de
Son Feb 9 13:30:50 CET 2003


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