Or is null / niet bestaand / empty in where

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

G Jansma

G Jansma

17/11/2015 19:59:11
Quote Anchor link
Ik heb een vraag over de Where in mijn query. Hij bestaat uit meerdere joins, maar er ik krijg het niet helemaal hoe ik het wil. Op het moment krijg ik alleen spelers die in de table 'team' zitten en dus aan alle criteria voldoen. Mijn vraag is: hoe krijg ik ook de spelers die geen team hebben, en dus ook geen team_jaar, plr_jaar en data hebben? Heb het geprobeerd met OR ... IS NULL maar dan werkt het niet meer.

Alvast bedankt!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT * een hele hoop
...
WHERE team_jaar = '".$jaar."' AND plr_jaar = '".$jaar."' AND '".$datum."' BETWEEN plr_begindatum AND plr_einddatum
 
PHP hulp

PHP hulp

16/11/2024 05:38:46
 
Thomas van den Heuvel

Thomas van den Heuvel

17/11/2015 21:40:17
Quote Anchor link
Hoe luiden je tabeldefinities, hoe zien je joins eruit, en hoe ziet de data in je tabellen er uit (met andere woorden, geen een concreet voorbeeld van welke data je zou willen opvragen, maar wat niet lukt).

Bovenstaande informatie is onvoldoende.

Schot voor de boeg / gokje: probeer het eens met een LEFT JOIN in combinatie met IS NULL...
 
G Jansma

G Jansma

17/11/2015 21:54:39
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
SELECT *

FROM uitslagen AS u

JOIN speler AS s ON u.uitslag_naam = s.id

LEFT OUTER JOIN ploeglr AS plr ON s.id = plr.plr_speler

LEFT OUTER JOIN teams AS t ON plr.plr_id = t.team_id

WHERE uitslag_wedstrijd_id = '". $id ."' AND uitslag_seizoen = '". $season ."' AND uitslag_categorie = '". $cat ."' AND team_jaar = '".$jaar."' AND plr_jaar = '".$jaar."' AND '".$datum."' BETWEEN plr_begindatum AND plr_einddatum
 
G Jansma

G Jansma

18/11/2015 23:44:45
Quote Anchor link
Ik ben inmiddels iets verder doordat ik enkele overeenkomende kolommen bij de Join heb gezet. Nou rest me nog één probleem, waar ik niet van weet hoe ik dat op moet lossen. Ik wil namelijk nog graag het volgende toevoegen in de Where, zodat spelers de club achter hun naam krijgen die ze op dat moment ($datum) hadden.

'".$datum."' BETWEEN plr_begindatum AND plr_einddatum

Op het moment krijg ik alle rijen van jaren waarin een speler een club had. Als ik Group by id doe wordt dat er 1, maar niet altijd de goede. En als ik bovenstaande code toevoeg verlies ik weer spelers die geen club hebben, en niet voorkomen in de betreffende table.

Iemand enig idee hoe ik dit kan oplossen?
 
G Jansma

G Jansma

20/11/2015 15:49:03
Quote Anchor link
Heb het opgelost. Heb een while in de while met een array of de renner een ploeg had ten tijde van de datum.
 



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.