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
WHERE (smlouvy.`datum` >= '2014-12-20' AND smlouvy.`datum` <= '2015-01-19') OR smlouvy.`datum` IS NULL
_es
Profil
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
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
Super funguje, díky moc :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0