JOIN und IS NOT NULL
Matty
- datenbank
0 Frank (no reg)0 Matty
Ich versuche hier auf eine MYSQL folgendes Result zu bekommen:
Ich möchte alle vorhandenen "Fragen" aus der Datenbank aufgelistet haben, mit der zusätzlichen Anzeige ob der User bei dieser Frage schon abgestimmt hat oder nicht.
meine DB
ask-Table
id | name | frage
ask_ip-check-Table
id | ask_id | user_id
wie schaff ich es jetzt alle Fragen aufzulisten und zusäztlich ob user_id=5 schon gevotet hat(in einem Query, und dass jede Antwort nur einmal gelistet wird)
SELECT
A.id,
A.frage,
IF( AIC.user_id = 5 , true, false ) AS beantwortet
FROM ask AS A
LEFT JOIN ask_ip_check AS AIC ON A.id = AIC.ask_id
GROUP BY A.id
Klappt leider nicht, da er zuerst "GROUP"ed und dann erst prüft ob die user_id 5 ist ... lass ich das GROUP BY weg ... bekomm ich die Antwort sooft wie es dafür Infos in der ask_ip_check gibt (ist ja klar!)
Jemand ne Idee dazu?
Danke scheen! :)
Hallo,
warum GROUPierst du eigentlich?
Du könntest die UserId=5 in den Join mit einschliessen:
SELECT
A.id,
A.frage,
IF(AIC.Id IS NULL, true, false) AS beantwortet
FROM ask AS A
LEFT JOIN ask_ip_check AS AIC
ON A.id = AIC.ask_id
AND AIC.user_id = 5
-- WHERE AIC.Id IS NOT NULL -- das gibt dir dann nur noch die beantworteten
HTH, Frank
Super das funktioniert genau so wie ich es wollte..
Danke schön!
Matty