Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

MySQL probleem (2 tabellen combineren)

John
2 antwoorden
  • Om te tonen wie er online zijn op een site gebruik ik de volgende query:
    [code:1:53f37eeff1]
    $query = "SELECT s.guest, s.usertype, s.userid"
    . "
    FROM #__session as s"
    ;
    [/code:1:53f37eeff1]
    Hiermee kan ik zowel gasten als geregistreerden tellen. Indien het een gast betreft is het veld "guest" true.

    Leden kunnen aangeven dat ze onzichtbaar willen zijn op de site, dat gegeven staat vermeld in de tabel members.

    Nu wil ik voorkomen dat leden die onzichtbaar willen blijven meegeteld worden bij de vermelding van het aantal leden.
    Ik had hiervoor de volgende oplossing bedacht:
    [code:1:53f37eeff1]
    $query = "SELECT s.guest, s.usertype, s.userid, m.tonen"
    . "
    FROM #__session as s, members as m"
    . "
    WHERE m.id = s.userid"
    ;
    [/code:1:53f37eeff1]
    Helaas werkt dit niet omdat gasten er op deze manier uitgfilterd worden (deze komen niet in de tabel "members" voor).

    Hoe los ik dit het slimste op ?
    Ik zou dus graag het veld "tonen" aan het resultaat toegevoegd zien waarbij dit veld leeg of "0" mag zijn wanneer het een gast betreft.

    Alvast bedankt,

    John


  • Gebruik een (left) outer join. Voor gasten die wel in de session tabel voorkomen en niet in de members tabel krijg je dan een NULL terug.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.