Left Join toont niet alle records
- Diov -
18/02/2014 19:54:38Beste,
Ik heb onderstaande query:
Deze selecteert alle promos per gebruiker per groep.
Overzicht tabellen:
promos --> promo
gebruikers --> leden
groepen --> web_user
Nu voert die deze query zeer goed uit, maar er ontbreekt mij iets.
Alle gebruikers die geen promos hebben, komen niet in de lijst.
M.a.w : Als aantal nul is, dan komt dat lid niet in de lijst.
Heb al verschillende zaken geprobeerd maar ik weet niet hoe ik het moet oplossen
Alvast bedankt
Diov
Ik heb onderstaande query:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$perweek = DB::select("SELECT u.username,
p.promogever_id,
p.datum,
COUNT(p.promonemer) As aantal
FROM leden AS u
LEFT JOIN promo AS p
ON u.username = p.promogever_id
WHERE
p.web = ?
AND DATE(p.datum) >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY
AND verwijder = 0
GROUP BY promogever_id
ORDER BY COUNT(promonemer) DESC", array(Session::get('web')));
?>
$perweek = DB::select("SELECT u.username,
p.promogever_id,
p.datum,
COUNT(p.promonemer) As aantal
FROM leden AS u
LEFT JOIN promo AS p
ON u.username = p.promogever_id
WHERE
p.web = ?
AND DATE(p.datum) >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY
AND verwijder = 0
GROUP BY promogever_id
ORDER BY COUNT(promonemer) DESC", array(Session::get('web')));
?>
Deze selecteert alle promos per gebruiker per groep.
Overzicht tabellen:
promos --> promo
gebruikers --> leden
groepen --> web_user
Nu voert die deze query zeer goed uit, maar er ontbreekt mij iets.
Alle gebruikers die geen promos hebben, komen niet in de lijst.
M.a.w : Als aantal nul is, dan komt dat lid niet in de lijst.
Heb al verschillende zaken geprobeerd maar ik weet niet hoe ik het moet oplossen
Alvast bedankt
Diov
PHP hulp
17/11/2024 05:27:45tabel promo (p) staat in een outer join, dus als je dan in de WHERE clause controleert op een kolom uit die tabel dan is er geen waarde voor die kolom als niet aan join voorwaarden wordt voldaan.
Kortom neem het mee in de join voorwaarden:
Kortom neem het mee in de join voorwaarden: