[Opgelost] problemen met sql query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steven mees

steven mees

19/06/2018 08:54:11
Quote Anchor link
ik heb 2 tabellen: events en beschikbaar.

In de tabel beschikbaar wordt een userid opgeslagen en de eventid's waarvoor de user zich beschikbaar zet.

nu wil ik met een query alle events weergeven waarvoor de user zich niet opgegeven heeft.

Dit is mijn sql tot nu toe:

SELECT events.id, events.title, events.start, events.end, beschikbaar.userID, beschikbaar.eventID FROM events left join beschikbaar on events.id = beschikbaar.eventID where beschikbaar.userID <> 6 OR beschikbaar.eventID is null


Het probleem dat ik hier heb is dat, indien een andere user zich opgegeven heeft voor hetzelfde event, dit ook in het resultaat staat, en dat wil ik niet.

in de linker tabel zouden dus enkel de events mogen staan waarvoor de user zicht niet heeft opgegeven, in de rechter tabel komen de events waarvoor de user zich wel heeft opgegeven


Weet iemand hoe ik dit kan realiseren?
Gewijzigd op 19/06/2018 14:14:29 door Steven mees
 
PHP hulp

PHP hulp

15/11/2024 13:38:50
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2018 13:58:26
Quote Anchor link
Even voor de duidelijkheid: deze query zou dus de events moeten weergeven waarvoor een specifieke gebruiker zich wel of niet beschikbaar heeft gesteld, correct?

Daarbij: de "tabellen" waar je het in de eerste paragraaf over hebt zijn database-tabellen, maar de "tabellen" waar je het in de voorlaatste paragraaf over hebt zijn HTML-tabellen die je weergeeft ofzo?

Het probleem waar je mogelijk tegenaan liep was dat op het moment dat je in je WHERE-conditie zet welk user(id) het betrof, dat je dan niet de events in de resultaten te zien kreeg waarvoor die user zich niet had opgegeven.

Wat je waarschijnlijk in plaats hiervan moet doen is dit opnemen in de (LEFT) JOIN-conditie zelf. Dan wanneer je de resultaten uitleest kijk je of het beschikbaar.userID NULL is of niet, en op grond daarvan zet je deze in de beschikbaar/niet beschikbaar lijst.

Dus zoiets (moet mogelijk nog getweaked worden):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT events.id, events.title, events.start, events.end, beschikbaar.userID, beschikbaar.eventID
FROM events
LEFT JOIN beschikbaar
ON (events.id = beschikbaar.eventID AND beschikbaar.userID = <het user id waarin je genteresseerd bent>)
 
Steven mees

steven mees

19/06/2018 14:13:42
Quote Anchor link
Bedankt,

ik heb het met u reactie kunnen oplossen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.