Hallo zusammen,
ich hab folgendes Problem:
Ich will ein Quiz bauen, mit sagen wir mal 2 Fragen (könnten später mal mehr werden). für jede Frage gibt es drei antworten. Am ende muss der user seinen namen, email etc blabla eingeben.
Ich will jetz mit mysql nur diejenigen user ausgeben, die BEIDE fragen richtig beantwortet haben. Ein kumpel meinte, es geht mit inner join...mit einer frage is es kein problem, mit mehreren schon.
meine Tabellen:
user:
- user_id (primary)
- name
- email
- antwort1
-antwort2
fragen:
- frage_id
- frage
- richtige_antwort
Wie gesagt mit einer frage wärs kein problem aber bei mehreren funktionierts nicht, evtl weil er 2 werte mit "richtige antwort vergleichen muss.
Habs so probiert:
SELECT name, email
FROM user
INNER JOIN fragen
ON user.antwort1 = fragen.richtige_antwort
AND user.antwort2 = fragen.richtige_antwort
Außerdem hab ichs schon mit ner kreuztabelle user_id / frage_id und folgender Abfrage probiert:
SELECT *
FROM user
INNER JOIN user_fragen ON user.user_id = user_fragen.user_id
INNER JOIN fragen ON user_fragen.antwort = fragen.richtig
Das funktioniert zwar, allerdings gibt er mir hier logischerweise die user mit den richtigen antworten 2x aus,da 2 fragen...
Was mach ich hier noch falsch bzw wie könnte ich das lösen?
Danke schonmal!
ich hab folgendes Problem:
Ich will ein Quiz bauen, mit sagen wir mal 2 Fragen (könnten später mal mehr werden). für jede Frage gibt es drei antworten. Am ende muss der user seinen namen, email etc blabla eingeben.
Ich will jetz mit mysql nur diejenigen user ausgeben, die BEIDE fragen richtig beantwortet haben. Ein kumpel meinte, es geht mit inner join...mit einer frage is es kein problem, mit mehreren schon.
meine Tabellen:
user:
- user_id (primary)
- name
- antwort1
-antwort2
fragen:
- frage_id
- frage
- richtige_antwort
Wie gesagt mit einer frage wärs kein problem aber bei mehreren funktionierts nicht, evtl weil er 2 werte mit "richtige antwort vergleichen muss.
Habs so probiert:
SELECT name, email
FROM user
INNER JOIN fragen
ON user.antwort1 = fragen.richtige_antwort
AND user.antwort2 = fragen.richtige_antwort
Außerdem hab ichs schon mit ner kreuztabelle user_id / frage_id und folgender Abfrage probiert:
SELECT *
FROM user
INNER JOIN user_fragen ON user.user_id = user_fragen.user_id
INNER JOIN fragen ON user_fragen.antwort = fragen.richtig
Das funktioniert zwar, allerdings gibt er mir hier logischerweise die user mit den richtigen antworten 2x aus,da 2 fragen...
Was mach ich hier noch falsch bzw wie könnte ich das lösen?
Danke schonmal!
Kommentar