Autor | Zpráva | ||
---|---|---|---|
Micruss Profil |
Zdravím,
mám takový menší problém s tabulkami, potřeboval bych vypsat uživatele, který mají smlouvy od nějakého období do konce období, což funguje super, ale jak docílím toho, abych zobrazil všechny uživatele i ty kteří nemají žádnou smlouvu? Když tak sql dotaz zde: SELECT users.*, SUM(smlouvy.bj) as bj, COUNT(smlouvy.user_id) as smluv FROM users LEFT JOIN smlouvy ON smlouvy.user_id = users.id WHERE smlouvy.`datum` >= '2014-12-20' AND smlouvy.`datum` <= '2015-01-19' GROUP BY users.id ORDER BY bj DESC |
||
tiso Profil |
#2 · Zasláno: 20. 1. 2015, 23:30:18
WHERE (smlouvy.`datum` >= '2014-12-20' AND smlouvy.`datum` <= '2015-01-19') OR smlouvy.`datum` IS NULL |
||
_es Profil |
#3 · Zasláno: 21. 1. 2015, 00:10:34
No a nestačí len časť
WHERE vymazať?
|
||
Micruss Profil |
tiso:
DÍky, funguje :), zkoušel jsem tam patlat taky IS NULL ale nenapadlo mě to to s datumem, dík ;) //--- edit: tak to funguje jenom v případě, že by uživatelé neměli žádnou smlouvu, ale jakmile bych dal třeba od května do června... tak to vypíše jen uživatele co nemají žádnou smlouvu :/ |
||
Kajman Profil |
#5 · Zasláno: 21. 1. 2015, 08:25:11
Podmínku na smlouvu dejte přímo do left joinu místo do where.
LEFT JOIN smlouvy ON smlouvy.user_id = users.id AND smlouvy.`datum` >= '2014-12-20' AND smlouvy.`datum` <= '2015-01-19' |
||
Micruss Profil |
#6 · Zasláno: 22. 1. 2015, 15:04:42
Super funguje, díky moc :)
|
||
Časová prodleva: 9 let
|
0