Matty: JOIN und IS NOT NULL

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! :)

  1. 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

    1. Super das funktioniert genau so wie ich es wollte..

      Danke schön!

      Matty