Probleem met opstellen juiste query
in t_mededeling staat het volgende
d_mededeling_id
d_mededeling en
d_wanneer_geplaatst
in t_gelezen staat
d_gelezen_id
t_user_d_user_id (link naar id van t_user)
t_mededeling_d_mededeling_id (link naar id van t_mededeling) en
d_wanneer gelezen
Als een scheidsrechter inlogt moet ik de ongelezen mededelingen voor deze scheidsrechter zichtbaar maken.
Als hij dan op gelezen klikt verdwijnt deze ongelezen melding van het scherm.
Het wilt niet lukken om een correcte query/view op te stellen.
Kan er iemand helpen?
tabel scheidsrechters
tabel mededelingen
koppeltabel gelezen_mededelingen
vervolgens krijg je de scheidsrechters en hun info in de tabel scheidsrechters en de mededelingen in de tabel mededelingen. Vervolgens kan je in je koppeltabel bijhouden welke scheidsrechter een bericht gelezen heeft of niet. Die tabel ziet er als volgt uit ongeveer
scheidsrechter_id : mededelingen_id : datum_gelezen
vervolgens moet je vanuit daar je query opzetten om de juiste mededeling voor de juiste scheidsrechter te geven.
en heb een tabel mededelingen met een id, de mededeling zelf en wanneer deze geplaatst is
in m'n tabel t_gelezen komt een id, de user id van d sr, de id van tabel mededeling en wanneer gelezen
Bedoel je dat ik nog een 3de tabel nodig heb om deze gegevens aan elkaar te koppelen?
Als je de ongelezen mededelingen wilt hebben moet je alle mededelingen selecteren, daaraan de gelezen records joinen (op basis van de ingelogde user) en vervolgens filteren op de ongelezen mededelingen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT a.d_mededeling
FROM a.t_mededeling
LEFT JOIN t_gelezen b ON (
a.d_mededeling_id = t_mededeling_d_mededeling_id
AND b.t_user_d_user_id = ...
)
WHERE b.d_gelezen_id IS NULL
FROM a.t_mededeling
LEFT JOIN t_gelezen b ON (
a.d_mededeling_id = t_mededeling_d_mededeling_id
AND b.t_user_d_user_id = ...
)
WHERE b.d_gelezen_id IS NULL
(op de puntjes vul je het id in van de ingelogde user)
Gewijzigd op 22/06/2013 00:06:13 door Erwin H