Probleem met opstellen juiste query
Bert Van den Brande
21/06/2013 20:18:07Ik heb volgende 2 tabellen
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?
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?
PHP hulp
19/12/2024 18:08:53Reshad F
21/06/2013 20:49:15ik begrijp je tabellen niet helemaal maar ik denk dat je zoiets nodig hebt
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.
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.
Bert Van den Brande
21/06/2013 20:57:06ik heb al een tabel scheidsrechters
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?
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?
Erwin H
22/06/2013 00:04:18Je t_gelezen tabel is al de koppeltabel.
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:
(op de puntjes vul je het id in van de ingelogde user)
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