Topic: Join?

Noriu iš vienos lentelės ištraukti vartotojo vardą, o iš kitos lentelės iškart suskaičiuoti kiek jis įkėlė failų. Akivaizdžiai man nieko nesigauna.

SELECT users.name, COUNT(upload.id) FROM users, upload WHERE upload.uploader_uid = users.uid

Gal kas pagelbės?

Re: Join?

SELECT users.name, COUNT(upload.id) FROM users inner join upload ON upload.uploader_uid = users.uid group by users.id

Re: Join?

erelis4 wrote:

SELECT users.name, COUNT(upload.id) FROM users inner join upload ON upload.uploader_uid = users.uid group by users.id

Taip, tik id laukai ne tie (-;

Re: Join?

Dėkui, o kaip padaryt, kad išrinktų ir vartotojus, kurie nieko neįkėlė? Nes ištraukia tik tuos, kurie turi kažką `upload` lentelėj.


P.S. Gale užklausos turėjo būt users.uid

Re: Join?

čia tolimesniuose komentaruose tokia pati situacija sprendžiama: http://www.mysql.lt/forumas/viewtopic.php?id=371

(-;

Re: Join?

inner join <- itraukia jeigu duomenys kitoje lenteleje egzistuoja
left join <- itraukia jeigu ir neegzistuoja duomenis kitoje lenteje

Re: Join?

erelis4 wrote:

inner join <- itraukia jeigu duomenys kitoje lenteleje egzistuoja
left join <- itraukia jeigu ir neegzistuoja duomenis kitoje lenteje

Taip, tik reikia nepamiršti nufiltruoti tuos, kurie yra abiejuose lentelėse (arba palikti tik tuos, kurie yra pirmoje lentelėje).

Re: Join?

Ačiū.