Diskuze: slouceni 2 tabulek v pomeru 1:n

Ostatní jazyky SQL SQL a databáze slouceni 2 tabulek v pomeru 1:n

Avatar
frankaj
Neregistrovaný
Avatar
frankaj:

ahoj
řeším zapeklitý problém s myaql.
mám tabulku osoba ve které je 10 osob (jména atd..) a poté mám tabulku kde mám různá cd. haždá osoba má N cd a já chci zjistit jméno osoby a počet cd, která vlastní.
nějak na to nemohu přijít. pokud použiji group by se sum tak to normalne vypise pouze pocet cd na osobu (třeba 10 20 30 ...) ale jakmile začnu j hodnotám přiřazovat jména nefunguje :( jsem uz opravdu v koncich a tak prosim poradte

SELECT count(osoba_id) FROM tbl_cd group by osoba_id (vybere mi pocet cd k osobam)

SELECT count(osoba_id) , jmeno FROM tbl_cd , tbl_osoba group by osoba_id (hazi nesmysly)

 
Odpovědět 6.3.2014 18:30
Avatar
MrPabloz
Člen
Avatar
MrPabloz:

Co presně chceš vědět ?

SELECT o.osoba_jmeno,count(c.cd_id)
FROM Osoba o LEFT JOIN CD c
ON o.osoba_id  c.osoba_id
GROUP BY o.osoba_jmeno

Tohle ti vybere osobu a k dané osobě vypíše cd která vlastní. nebo jak si to myslel? ( nazvy sou obrazně, dosad si za ně ty svoje :)

Nahoru Odpovědět 6.3.2014 19:08
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
frankaj
Neregistrovaný
Avatar
frankaj:

už jsem na to konečně přišel
select o.jmeno,
count(c.osoba_id)
from tbl_cd c
left join tbl_osoba o
on c.osoba_id = o.id_osoba
group by c.osoba_id

jmeno 10
jmeno1 20
...

s mysql zacinam a tak mi neco pochopit trva tak trochu dele :)

 
Nahoru Odpovědět 6.3.2014 19:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.